OSDN Git Service

Dirty hack to work around context menu positioning issues on Chrome OS
[android-x86/packages-apps-Taskbar.git] / app / src / main / java / com / farmerbb / taskbar / activity / MainActivity.java
index 12fc86c..1befac2 100644 (file)
@@ -33,6 +33,7 @@ import android.graphics.drawable.Icon;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Handler;
 import android.support.design.widget.Snackbar;
 import android.support.v4.content.LocalBroadcastManager;
 import android.support.v7.app.ActionBar;
@@ -67,6 +68,8 @@ public class MainActivity extends AppCompatActivity {
         }
     };
 
+    private boolean hasCaption = false;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -118,6 +121,13 @@ public class MainActivity extends AppCompatActivity {
         if(!launcherEnabled)
             LocalBroadcastManager.getInstance(this).sendBroadcast(new Intent("com.farmerbb.taskbar.KILL_HOME_ACTIVITY"));
 
+        // Update caption state
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && U.isChromeOs(this)) {
+            getWindow().setRestrictedCaptionAreaListener(rect -> hasCaption = true);
+
+            new Handler().postDelayed(() -> pref.edit().putBoolean("has_caption", hasCaption).apply(), 500);
+        }
+
         if(BuildConfig.APPLICATION_ID.equals(BuildConfig.PAID_APPLICATION_ID)) {
             File file = new File(getFilesDir() + File.separator + "imported_successfully");
             if(freeVersionInstalled() && !file.exists()) {
@@ -286,9 +296,12 @@ public class MainActivity extends AppCompatActivity {
 
     @Override
     protected void onDestroy() {
-        super.onDestroy();
-
         LocalBroadcastManager.getInstance(this).unregisterReceiver(switchReceiver);
+
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && U.isChromeOs(this))
+            getWindow().setRestrictedCaptionAreaListener(null);
+
+        super.onDestroy();
     }
 
     @SuppressWarnings("deprecation")