diff --git a/.gitmodules b/.gitmodules index 3ba89d6b..3cf6b43c 100755 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "libraries/Jumble"] path = libraries/Jumble - url = https://www.github.com//Jumble.git + url = https://www.github.com/Morlunk/Jumble.git [submodule "libraries/NetCipher"] path = libraries/NetCipher - url = https://github.com//OnionKit.git + url = https://github.com/Morlunk/OnionKit.git diff --git a/app/build.gradle b/app/build.gradle index 0760fd06..46d92c74 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.12.+' + classpath 'com.android.tools.build:gradle:1.0.0' } } apply plugin: 'com.android.application' @@ -49,16 +49,12 @@ dependencies { // Keep my credentials private :^) -signingFile = file 'signing.gradle'; -if(signingFile.exists()) apply from: 'signing.gradle' +def signingFile = file 'signing.gradle'; +if (signingFile.exists()) apply from: 'signing.gradle' android { compileSdkVersion 21 - buildToolsVersion "21" - - // Fixes crash with support lib and gradle 0.9.1, see: - // https://stackoverflow.com/questions/22509850/actionbaractivity-closes-after-pressing-hardware-menu-button-without-stack-trac - aaptOptions.useAaptPngCruncher = true + buildToolsVersion "21.1.1" defaultConfig { minSdkVersion 9 @@ -66,7 +62,6 @@ android { applicationId "com.terracom.mumbleclient" versionCode 72 versionName "1.0.0" - testPackageName "com.terracom.mumbleclient.test" testInstrumentationRunner "android.test.InstrumentationTestRunner" buildConfigField "boolean", "DONATE_NAG", "false" } @@ -84,8 +79,8 @@ android { jenkins { // Abuse Jenkins environment variables. Neat. - env = System.getenv() - if(env.containsKey("BUILD_NUMBER") && env.containsKey("BUILD_DISPLAY_NAME")) { + def env = System.getenv() + if (env.containsKey("BUILD_NUMBER") && env.containsKey("BUILD_DISPLAY_NAME")) { versionCode Integer.parseInt(env.get("BUILD_NUMBER")) versionName env.get("BUILD_DISPLAY_NAME") } else { diff --git a/app/src/free/ic_launcher-web.png b/app/src/free/ic_launcher-web.png old mode 100644 new mode 100755 diff --git a/app/src/free/res/drawable-hdpi/ic_launcher.png b/app/src/free/res/drawable-hdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/free/res/drawable-mdpi/ic_launcher.png b/app/src/free/res/drawable-mdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/free/res/drawable-xhdpi/ic_launcher.png b/app/src/free/res/drawable-xhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/free/res/drawable-xxhdpi/ic_launcher.png b/app/src/free/res/drawable-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/free/res/drawable-xxxhdpi/ic_launcher.png b/app/src/free/res/drawable-xxxhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/main/java/com/terracom/mumbleclient/Settings.java b/app/src/main/java/com/terracom/mumbleclient/Settings.java index f932fa1e..b5f6ebe9 100755 --- a/app/src/main/java/com/terracom/mumbleclient/Settings.java +++ b/app/src/main/java/com/terracom/mumbleclient/Settings.java @@ -21,7 +21,6 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; -import android.util.Log; import android.view.Gravity; import com.terracom.jumble.Constants; @@ -94,7 +93,7 @@ public class Settings { public static final String PREF_CERT_PASSWORD = "certificatePassword"; public static final String PREF_DEFAULT_USERNAME = "defaultUsername"; - public static final String DEFAULT_DEFAULT_USERNAME = "GuardID_GuardPIN"; // funny var name -> QRPushToTalk_User default + public static final String DEFAULT_DEFAULT_USERNAME = "GuardID_GuardPIN"; // funny var name public static final String PREF_FORCE_TCP = "forceTcp"; public static final Boolean DEFAULT_FORCE_TCP = false; @@ -170,41 +169,14 @@ public String getInputMethod() { public int getJumbleInputMethod() { String inputMethod = getInputMethod(); if (ARRAY_INPUT_METHOD_VOICE.equals(inputMethod)) { - //Log.d("---------------MhnymaaaaaaaVOICE-----------------", inputMethod); return Constants.TRANSMIT_VOICE_ACTIVITY; - //return Constants.TRANSMIT_PUSH_TO_TALK; } else if (ARRAY_INPUT_METHOD_PTT.equals(inputMethod)) { - //Log.d("---------------MhnymaaaaaaaPTT-----------------",inputMethod); return Constants.TRANSMIT_PUSH_TO_TALK; } else if (ARRAY_INPUT_METHOD_CONTINUOUS.equals(inputMethod)) { - //Log.d("---------------MhnymaaaaaaaCONTINUOUS-----------------",inputMethod); return Constants.TRANSMIT_CONTINUOUS; - //return Constants.TRANSMIT_PUSH_TO_TALK; } throw new RuntimeException("Could not convert input method '" + inputMethod + "' to a Jumble input method id!"); } - /*public int getJumbleInputMethod() { - String inputMethod = getInputMethod(); - if (ARRAY_INPUT_METHOD_VOICE.equals(inputMethod)) { - return Constants.TRANSMIT_PUSH_TO_TALK; - } else if (ARRAY_INPUT_METHOD_PTT.equals(inputMethod)) { - return Constants.TRANSMIT_PUSH_TO_TALK; - } else if (ARRAY_INPUT_METHOD_CONTINUOUS.equals(inputMethod)) { - return Constants.TRANSMIT_PUSH_TO_TALK; - } - throw new RuntimeException("Could not convert input method '" + inputMethod + "' to a Jumble input method id!"); - }*/ - - - /*public void setInputMethod(String inputMethod) { - if(ARRAY_INPUT_METHOD_VOICE.equals(inputMethod) || - ARRAY_INPUT_METHOD_PTT.equals(inputMethod) || - ARRAY_INPUT_METHOD_CONTINUOUS.equals(inputMethod)) { - preferences.edit().putString(PREF_INPUT_METHOD, inputMethod).apply(); - } else { - throw new RuntimeException("Invalid input method " + inputMethod); - } - }*/ public void setInputMethod(String inputMethod) { if(ARRAY_INPUT_METHOD_VOICE.equals(inputMethod) || @@ -269,9 +241,7 @@ public int getHotCornerGravity() { /** * @return the resource ID of the user-defined theme. */ - - /* - public int getTheme() { + /*public int getTheme() { String theme = preferences.getString(PREF_THEME, ARRAY_THEME_LIGHT); if(ARRAY_THEME_LIGHT.equals(theme)) return R.style.Theme_QRPushToTalk; @@ -282,13 +252,14 @@ else if(ARRAY_THEME_SOLARIZED_LIGHT.equals(theme)) else if(ARRAY_THEME_SOLARIZED_DARK.equals(theme)) return R.style.Theme_QRPushToTalk_Solarized_Dark; return -1; - } - */ + }*/ + public int getTheme() { return R.style.Theme_QRPushToTalk_Solarized_Light; } + /** * Attempts to read the certificate from the path specified in settings. * @return The parsed bytes of the certificate, or null otherwise. diff --git a/app/src/main/java/com/terracom/mumbleclient/app/QRPushToTalkActivity.java b/app/src/main/java/com/terracom/mumbleclient/app/QRPushToTalkActivity.java index 3894dfc1..fca0b668 100755 --- a/app/src/main/java/com/terracom/mumbleclient/app/QRPushToTalkActivity.java +++ b/app/src/main/java/com/terracom/mumbleclient/app/QRPushToTalkActivity.java @@ -286,6 +286,20 @@ public void onDrawerClosed(View drawerView) { public void onDrawerOpened(View drawerView) { supportInvalidateOptionsMenu(); } + + @Override + public void onDrawerStateChanged(int newState) { + if (newState == DrawerLayout.STATE_DRAGGING) { + try { + // Workaround PTT staying on when the drawer is opened. + if (getService().isConnected() && getService().isTalking()) { + getService().setTalkingState(false); + } + } catch (RemoteException e) { + e.printStackTrace(); + } + } + } }; mDrawerLayout.setDrawerListener(mDrawerToggle); getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/com/terracom/mumbleclient/channel/ChannelChatFragment.java b/app/src/main/java/com/terracom/mumbleclient/channel/ChannelChatFragment.java index 8c227646..b1821b00 100755 --- a/app/src/main/java/com/terracom/mumbleclient/channel/ChannelChatFragment.java +++ b/app/src/main/java/com/terracom/mumbleclient/channel/ChannelChatFragment.java @@ -254,9 +254,15 @@ public void clear() { public void updateChatTargetText(ChatTargetProvider.ChatTarget target) throws RemoteException { if(getService() == null) return; - if(target == null) mChatTextEdit.setHint(getString(R.string.messageToChannel, getService().getSessionChannel().getName())); - else if(target.getUser() != null) mChatTextEdit.setHint(getString(R.string.messageToUser, target.getUser().getName())); - else if(target.getChannel() != null) mChatTextEdit.setHint(getString(R.string.messageToChannel, target.getChannel().getName())); + String hint = null; + if(target == null && getService().getSessionChannel() != null) { + hint = getString(R.string.messageToChannel, getService().getSessionChannel().getName()); + } else if(target != null && target.getUser() != null) { + hint = getString(R.string.messageToUser, target.getUser().getName()); + } else if(target != null && target.getChannel() != null) { + hint = getString(R.string.messageToChannel, target.getChannel().getName()); + } + mChatTextEdit.setHint(hint); mChatTextEdit.requestLayout(); // Needed to update bounds after hint change. } diff --git a/app/src/main/java/com/terracom/mumbleclient/channel/ChannelFragment.java b/app/src/main/java/com/terracom/mumbleclient/channel/ChannelFragment.java index cff4102c..c929488b 100755 --- a/app/src/main/java/com/terracom/mumbleclient/channel/ChannelFragment.java +++ b/app/src/main/java/com/terracom/mumbleclient/channel/ChannelFragment.java @@ -164,7 +164,7 @@ public void onActivityCreated(Bundle savedInstanceState) { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - //inflater.inflate(R.menu.channel_menu, menu); +// inflater.inflate(R.menu.channel_menu, menu); } @Override diff --git a/app/src/main/java/com/terracom/mumbleclient/channel/ChannelListFragment.java b/app/src/main/java/com/terracom/mumbleclient/channel/ChannelListFragment.java index 25c156af..ecf48baa 100755 --- a/app/src/main/java/com/terracom/mumbleclient/channel/ChannelListFragment.java +++ b/app/src/main/java/com/terracom/mumbleclient/channel/ChannelListFragment.java @@ -304,7 +304,7 @@ public boolean onOptionsItemSelected(MenuItem item) { } catch (RemoteException e) { e.printStackTrace(); } - return true; */ + return true;*/ } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/com/terracom/mumbleclient/channel/actionmode/ChannelActionModeCallback.java b/app/src/main/java/com/terracom/mumbleclient/channel/actionmode/ChannelActionModeCallback.java index caec1c8d..1f234eca 100755 --- a/app/src/main/java/com/terracom/mumbleclient/channel/actionmode/ChannelActionModeCallback.java +++ b/app/src/main/java/com/terracom/mumbleclient/channel/actionmode/ChannelActionModeCallback.java @@ -173,7 +173,7 @@ public void onClick(DialogInterface dialog, int which) { } catch (RemoteException e) { e.printStackTrace(); } - break; */ + break;*/ } actionMode.finish(); return true; diff --git a/app/src/main/java/com/terracom/mumbleclient/preference/Preferences.java b/app/src/main/java/com/terracom/mumbleclient/preference/Preferences.java index 245cc0f9..86e8bfb9 100755 --- a/app/src/main/java/com/terracom/mumbleclient/preference/Preferences.java +++ b/app/src/main/java/com/terracom/mumbleclient/preference/Preferences.java @@ -244,9 +244,9 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { private static void updateAudioDependents(PreferenceScreen screen, String inputMethod) { PreferenceCategory pttCategory = (PreferenceCategory) screen.findPreference("ptt_settings"); PreferenceCategory vadCategory = (PreferenceCategory) screen.findPreference("vad_settings"); - //pttCategory.setEnabled(Settings.ARRAY_INPUT_METHOD_PTT.equals(inputMethod)); +// pttCategory.setEnabled(Settings.ARRAY_INPUT_METHOD_PTT.equals(inputMethod)); pttCategory.setEnabled(true); - //vadCategory.setEnabled(Settings.ARRAY_INPUT_METHOD_VOICE.equals(inputMethod)); +// vadCategory.setEnabled(Settings.ARRAY_INPUT_METHOD_VOICE.equals(inputMethod)); vadCategory.setEnabled(false); } diff --git a/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkNotification.java b/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkNotification.java index fbfffeac..e7fb58a8 100755 --- a/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkNotification.java +++ b/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkNotification.java @@ -166,7 +166,7 @@ private Notification createNotification() { // Add notification triggers Intent muteIntent = new Intent(BROADCAST_MUTE); Intent deafenIntent = new Intent(BROADCAST_DEAFEN); - //Intent overlayIntent = new Intent(BROADCAST_OVERLAY); +// Intent overlayIntent = new Intent(BROADCAST_OVERLAY); builder.addAction(R.drawable.ic_action_microphone, mService.getString(R.string.mute), PendingIntent.getBroadcast(mService, 1, @@ -174,7 +174,7 @@ private Notification createNotification() { builder.addAction(R.drawable.ic_action_audio, mService.getString(R.string.deafen), PendingIntent.getBroadcast(mService, 1, deafenIntent, PendingIntent.FLAG_CANCEL_CURRENT)); - /*builder.addAction(R.drawable.ic_action_channels, +/* builder.addAction(R.drawable.ic_action_channels, mService.getString(R.string.overlay), PendingIntent.getBroadcast(mService, 2, overlayIntent, PendingIntent.FLAG_CANCEL_CURRENT));*/ } else { diff --git a/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkService.java b/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkService.java index ddb703d3..aea423e1 100755 --- a/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkService.java +++ b/app/src/main/java/com/terracom/mumbleclient/service/QRPushToTalkService.java @@ -107,9 +107,11 @@ public void onConnectionError(String message, boolean reconnecting) throws Remot @Override public void onUserConnected(User user) throws RemoteException { - // Immediately request avatar upon connection. - // FIXME: we need to refresh avatar when hash changes - getBinder().requestAvatar(user.getSession()); + if (user.getTextureHash() != null && + user.getTexture() == null) { + // Request avatar data if available. + getBinder().requestAvatar(user.getSession()); + } } @Override @@ -127,6 +129,12 @@ else if (user.isSelfMuted()) mNotification.setCustomContentText(contentText); } } + + if (user.getTextureHash() != null && + user.getTexture() == null) { + // Update avatar data if available. + getBinder().requestAvatar(user.getSession()); + } } @Override diff --git a/app/src/main/res/drawable-hdpi-v11/ic_stat_notify.png b/app/src/main/res/drawable-hdpi-v11/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi-v9/ic_stat_notify.png b/app/src/main/res/drawable-hdpi-v9/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/ic_home.png b/app/src/main/res/drawable-hdpi/ic_home.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/ic_stat_notify.png b/app/src/main/res/drawable-hdpi/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi-v11/ic_stat_notify.png b/app/src/main/res/drawable-mdpi-v11/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi-v9/ic_stat_notify.png b/app/src/main/res/drawable-mdpi-v9/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/ic_home.png b/app/src/main/res/drawable-mdpi/ic_home.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/ic_stat_notify.png b/app/src/main/res/drawable-mdpi/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi-v11/ic_stat_notify.png b/app/src/main/res/drawable-xhdpi-v11/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi-v9/ic_stat_notify.png b/app/src/main/res/drawable-xhdpi-v9/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/ic_home.png b/app/src/main/res/drawable-xhdpi/ic_home.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/ic_stat_notify.png b/app/src/main/res/drawable-xhdpi/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi-v11/ic_stat_notify.png b/app/src/main/res/drawable-xxhdpi-v11/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi-v9/ic_stat_notify.png b/app/src/main/res/drawable-xxhdpi-v9/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/ic_home.png b/app/src/main/res/drawable-xxhdpi/ic_home.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/ic_stat_notify.png b/app/src/main/res/drawable-xxhdpi/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/ic_stat_notify.png b/app/src/main/res/drawable/ic_stat_notify.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/layout/dialog_server_edit.xml b/app/src/main/res/layout/dialog_server_edit.xml index 7c456e8a..c776522c 100755 --- a/app/src/main/res/layout/dialog_server_edit.xml +++ b/app/src/main/res/layout/dialog_server_edit.xml @@ -49,7 +49,7 @@ android:layout_height="wrap_content" android:layout_weight="0.92" android:inputType="textUri" - android:hint="141.237.72.148"/> + android:hint="http://www.plan.gr"/> . -# - -#Sat Jun 07 00:40:57 PDT 2014 +#Mon Dec 08 12:27:40 PST 2014 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip