|
|
@@ -1,6 +1,7 @@
|
|
|
package com.knacki.mimou.activity;
|
|
|
|
|
|
import android.Manifest;
|
|
|
+import android.content.Context;
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
import android.content.pm.PackageManager;
|
|
|
@@ -11,8 +12,11 @@ import android.os.Handler;
|
|
|
import android.os.Looper;
|
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.v4.app.ActivityCompat;
|
|
|
+import android.support.v4.view.MenuCompat;
|
|
|
import android.support.v7.app.AlertDialog;
|
|
|
import android.support.v7.app.AppCompatActivity;
|
|
|
+import android.view.Menu;
|
|
|
+import android.view.MenuItem;
|
|
|
import android.webkit.WebChromeClient;
|
|
|
import android.webkit.WebView;
|
|
|
import android.webkit.WebViewClient;
|
|
|
@@ -31,6 +35,8 @@ public class MainActivity extends AppCompatActivity {
|
|
|
public final static int SMS_PERMISSION_CALLBACK = 42;
|
|
|
protected WebView web;
|
|
|
protected JsInterface interfaceMimouDroid;
|
|
|
+ protected MainActivityMenu menu;
|
|
|
+ protected String currentChannel = null;
|
|
|
public static boolean needReload = true;
|
|
|
private static Logger log = Logger.getLogger(MainActivity.class.getName());
|
|
|
private JsInterface.TypedCallback<Boolean> currentCallback = null;
|
|
|
@@ -82,6 +88,18 @@ public class MainActivity extends AppCompatActivity {
|
|
|
reload();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean onCreateOptionsMenu(Menu m) {
|
|
|
+ getMenuInflater().inflate(R.menu.title_opt, m);
|
|
|
+ menu = new MainActivityMenu(m);
|
|
|
+ menu.setFavoriteEnabled(false);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void uiThread(Runnable e) {
|
|
|
+ new Handler(Looper.getMainLooper()).post(e);
|
|
|
+ }
|
|
|
+
|
|
|
public void reload() {
|
|
|
if (needReload && web != null) {
|
|
|
if (CredentialHolder.hasCredential(this)) {
|
|
|
@@ -125,7 +143,7 @@ public class MainActivity extends AppCompatActivity {
|
|
|
}
|
|
|
|
|
|
private void runJavascript(final String js) {
|
|
|
- (new Handler(Looper.getMainLooper())).post(new Runnable() {
|
|
|
+ uiThread(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
if (web != null)
|
|
|
@@ -153,6 +171,26 @@ public class MainActivity extends AppCompatActivity {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void setCurrentChannel(String channelId) {
|
|
|
+ currentChannel = channelId;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setTitle(final CharSequence title, final Boolean isFavorite) {
|
|
|
+ uiThread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ setTitle(title);
|
|
|
+
|
|
|
+ if (isFavorite == null) {
|
|
|
+ menu.setFavoriteEnabled(false);
|
|
|
+ } else {
|
|
|
+ menu.setFavoriteEnabled(true);
|
|
|
+ menu.setFavorite(isFavorite);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
private void promptAndroidPermission() {
|
|
|
ActivityCompat.requestPermissions(this, new String[] {Manifest.permission.READ_SMS, Manifest.permission.SEND_SMS}, SMS_PERMISSION_CALLBACK);
|
|
|
}
|
|
|
@@ -194,8 +232,49 @@ public class MainActivity extends AppCompatActivity {
|
|
|
@Override
|
|
|
public void onBackPressed() {
|
|
|
if (UserSettings.backShowMenu(this))
|
|
|
- runJavascript(new JavascriptFunction("onNativeBackPressed"));
|
|
|
+ runJavascript(new JavascriptFunction("displayMenu"));
|
|
|
else
|
|
|
moveTaskToBack(true);
|
|
|
}
|
|
|
+
|
|
|
+ class MainActivityMenu {
|
|
|
+ protected MenuItem favoriteButton;
|
|
|
+ protected MenuItem menuButton;
|
|
|
+ protected boolean favoriteEnabled;
|
|
|
+ protected boolean isFavorite;
|
|
|
+
|
|
|
+ MainActivityMenu(Menu menu) {
|
|
|
+ favoriteButton = menu.getItem(0);
|
|
|
+ menuButton = menu.getItem(1);
|
|
|
+
|
|
|
+ favoriteButton.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onMenuItemClick(MenuItem menuItem) {
|
|
|
+ if (favoriteEnabled && currentChannel != null) {
|
|
|
+ runJavascript(new JavascriptFunction("setChannelFavorite").addArgument(currentChannel).addArgument(!isFavorite));
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ menuButton.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onMenuItemClick(MenuItem menuItem) {
|
|
|
+ runJavascript(new JavascriptFunction("toggleMenu"));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setFavoriteEnabled(boolean enabled) {
|
|
|
+ favoriteButton.setVisible(enabled);
|
|
|
+ favoriteEnabled = enabled;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void setFavorite(boolean isFav) {
|
|
|
+ isFavorite = isFav;
|
|
|
+ favoriteButton.setTitle(isFav ? "STARRED" : "NOT STARRED");
|
|
|
+ //favoriteButton.setIcon(MainActivity.this.getDrawable(R.drawable.favorite));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|