From 6cf54b32ace1f7493ee1683ab91ee748920c7752 Mon Sep 17 00:00:00 2001 From: Morgan McMillian Date: Sun, 2 Sep 2018 17:12:41 -0700 Subject: [PATCH] remove cordova-plugin-statusbar plugin #72 --- config.xml | 1 - package-lock.json | 5 - package.json | 2 - platforms/android/android.json | 16 - .../apache/cordova/statusbar/StatusBar.java | 276 ------------------ src/app/app.component.ts | 4 +- src/app/app.module.ts | 2 - 7 files changed, 1 insertion(+), 305 deletions(-) delete mode 100644 platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java diff --git a/config.xml b/config.xml index 6ba6c9c..07d8351 100644 --- a/config.xml +++ b/config.xml @@ -92,7 +92,6 @@ - diff --git a/package-lock.json b/package-lock.json index a957402..8fda849 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2403,11 +2403,6 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.2.tgz", "integrity": "sha1-dH509W4gHNWFvGLRS8oZ9oZ/8e0=" }, - "cordova-plugin-statusbar": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/cordova-plugin-statusbar/-/cordova-plugin-statusbar-2.4.2.tgz", - "integrity": "sha1-/B+9wNjXAzp+jh8ff/FnrJvU+vY=" - }, "cordova-plugin-telerik-imagepicker": { "version": "2.1.10", "resolved": "https://registry.npmjs.org/cordova-plugin-telerik-imagepicker/-/cordova-plugin-telerik-imagepicker-2.1.10.tgz", diff --git a/package.json b/package.json index c6fd26f..934b178 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "cordova-plugin-inappbrowser": "^3.0.0", "cordova-plugin-share-content": "^1.0.0", "cordova-plugin-splashscreen": "^5.0.2", - "cordova-plugin-statusbar": "^2.4.2", "cordova-plugin-telerik-imagepicker": "^2.1.8", "cordova-plugin-whitelist": "^1.3.3", "ionic-angular": "3.9.2", @@ -68,7 +67,6 @@ "com-darryncampbell-cordova-plugin-intent": {}, "cordova-plugin-inappbrowser": {}, "cordova-plugin-whitelist": {}, - "cordova-plugin-statusbar": {}, "cordova-plugin-splashscreen": {}, "cordova-plugin-device": {}, "cordova-android-support-gradle-release": { diff --git a/platforms/android/android.json b/platforms/android/android.json index 9188143..9c6bd98 100644 --- a/platforms/android/android.json +++ b/platforms/android/android.json @@ -38,10 +38,6 @@ "xml": "", "count": 1 }, - { - "xml": "", - "count": 1 - }, { "xml": "", "count": 1 @@ -127,9 +123,6 @@ "cordova-plugin-whitelist": { "PACKAGE_NAME": "com.monkeystew.goober_m" }, - "cordova-plugin-statusbar": { - "PACKAGE_NAME": "com.monkeystew.goober_m" - }, "cordova-plugin-splashscreen": { "PACKAGE_NAME": "com.monkeystew.goober_m" }, @@ -368,14 +361,6 @@ "window.open" ] }, - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, { "id": "cordova-plugin-splashscreen.SplashScreen", "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", @@ -409,7 +394,6 @@ "com-darryncampbell-cordova-plugin-intent": "1.1.0", "cordova-plugin-inappbrowser": "3.0.0", "cordova-plugin-whitelist": "1.3.3", - "cordova-plugin-statusbar": "2.4.2", "cordova-plugin-splashscreen": "5.0.2", "cordova-plugin-device": "2.0.2", "cordova-android-support-gradle-release": "1.4.4", diff --git a/platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java b/platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java deleted file mode 100644 index 714c30e..0000000 --- a/platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ -package org.apache.cordova.statusbar; - -import android.app.Activity; -import android.graphics.Color; -import android.os.Build; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; - -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaArgs; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.LOG; -import org.apache.cordova.PluginResult; -import org.json.JSONException; -import java.util.Arrays; - -public class StatusBar extends CordovaPlugin { - private static final String TAG = "StatusBar"; - - /** - * Sets the context of the Command. This can then be used to do things like - * get file paths associated with the Activity. - * - * @param cordova The context of the main Activity. - * @param webView The CordovaWebView Cordova is running in. - */ - @Override - public void initialize(final CordovaInterface cordova, CordovaWebView webView) { - LOG.v(TAG, "StatusBar: initialization"); - super.initialize(cordova, webView); - - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - // Clear flag FLAG_FORCE_NOT_FULLSCREEN which is set initially - // by the Cordova. - Window window = cordova.getActivity().getWindow(); - window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - - // Read 'StatusBarBackgroundColor' from config.xml, default is #000000. - setStatusBarBackgroundColor(preferences.getString("StatusBarBackgroundColor", "#000000")); - - // Read 'StatusBarStyle' from config.xml, default is 'lightcontent'. - setStatusBarStyle(preferences.getString("StatusBarStyle", "lightcontent")); - } - }); - } - - /** - * Executes the request and returns PluginResult. - * - * @param action The action to execute. - * @param args JSONArry of arguments for the plugin. - * @param callbackContext The callback id used when calling back into JavaScript. - * @return True if the action was valid, false otherwise. - */ - @Override - public boolean execute(final String action, final CordovaArgs args, final CallbackContext callbackContext) throws JSONException { - LOG.v(TAG, "Executing action: " + action); - final Activity activity = this.cordova.getActivity(); - final Window window = activity.getWindow(); - - if ("_ready".equals(action)) { - boolean statusBarVisible = (window.getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) == 0; - callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, statusBarVisible)); - return true; - } - - if ("show".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - // SYSTEM_UI_FLAG_FULLSCREEN is available since JellyBean, but we - // use KitKat here to be aligned with "Fullscreen" preference - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - int uiOptions = window.getDecorView().getSystemUiVisibility(); - uiOptions &= ~View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; - uiOptions &= ~View.SYSTEM_UI_FLAG_FULLSCREEN; - - window.getDecorView().setSystemUiVisibility(uiOptions); - } - - // CB-11197 We still need to update LayoutParams to force status bar - // to be hidden when entering e.g. text fields - window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - }); - return true; - } - - if ("hide".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - // SYSTEM_UI_FLAG_FULLSCREEN is available since JellyBean, but we - // use KitKat here to be aligned with "Fullscreen" preference - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - int uiOptions = window.getDecorView().getSystemUiVisibility() - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_FULLSCREEN; - - window.getDecorView().setSystemUiVisibility(uiOptions); - } - - // CB-11197 We still need to update LayoutParams to force status bar - // to be hidden when entering e.g. text fields - window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - }); - return true; - } - - if ("backgroundColorByHexString".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - try { - setStatusBarBackgroundColor(args.getString(0)); - } catch (JSONException ignore) { - LOG.e(TAG, "Invalid hexString argument, use f.i. '#777777'"); - } - } - }); - return true; - } - - if ("overlaysWebView".equals(action)) { - if (Build.VERSION.SDK_INT >= 21) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - try { - setStatusBarTransparent(args.getBoolean(0)); - } catch (JSONException ignore) { - LOG.e(TAG, "Invalid boolean argument"); - } - } - }); - return true; - } - else return args.getBoolean(0) == false; - } - - if ("styleDefault".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("default"); - } - }); - return true; - } - - if ("styleLightContent".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("lightcontent"); - } - }); - return true; - } - - if ("styleBlackTranslucent".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("blacktranslucent"); - } - }); - return true; - } - - if ("styleBlackOpaque".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("blackopaque"); - } - }); - return true; - } - - return false; - } - - private void setStatusBarBackgroundColor(final String colorPref) { - if (Build.VERSION.SDK_INT >= 21) { - if (colorPref != null && !colorPref.isEmpty()) { - final Window window = cordova.getActivity().getWindow(); - // Method and constants not available on all SDKs but we want to be able to compile this code with any SDK - window.clearFlags(0x04000000); // SDK 19: WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - window.addFlags(0x80000000); // SDK 21: WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - try { - // Using reflection makes sure any 5.0+ device will work without having to compile with SDK level 21 - window.getClass().getMethod("setStatusBarColor", int.class).invoke(window, Color.parseColor(colorPref)); - } catch (IllegalArgumentException ignore) { - LOG.e(TAG, "Invalid hexString argument, use f.i. '#999999'"); - } catch (Exception ignore) { - // this should not happen, only in case Android removes this method in a version > 21 - LOG.w(TAG, "Method window.setStatusBarColor not found for SDK level " + Build.VERSION.SDK_INT); - } - } - } - } - - private void setStatusBarTransparent(final boolean transparent) { - if (Build.VERSION.SDK_INT >= 21) { - final Window window = cordova.getActivity().getWindow(); - if (transparent) { - window.getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); - window.setStatusBarColor(Color.TRANSPARENT); - } - else { - window.getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_VISIBLE); - } - } - } - - private void setStatusBarStyle(final String style) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (style != null && !style.isEmpty()) { - View decorView = cordova.getActivity().getWindow().getDecorView(); - int uiOptions = decorView.getSystemUiVisibility(); - - String[] darkContentStyles = { - "default", - }; - - String[] lightContentStyles = { - "lightcontent", - "blacktranslucent", - "blackopaque", - }; - - if (Arrays.asList(darkContentStyles).contains(style.toLowerCase())) { - decorView.setSystemUiVisibility(uiOptions | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); - return; - } - - if (Arrays.asList(lightContentStyles).contains(style.toLowerCase())) { - decorView.setSystemUiVisibility(uiOptions & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); - return; - } - - LOG.e(TAG, "Invalid style, must be either 'default', 'lightcontent' or the deprecated 'blacktranslucent' and 'blackopaque'"); - } - } - } -} diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 47ae0e4..613d0ed 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,6 +1,5 @@ import { Component, ViewChild } from '@angular/core'; import { Nav, Platform } from 'ionic-angular'; -import { StatusBar } from '@ionic-native/status-bar'; import { SplashScreen } from '@ionic-native/splash-screen'; import { Storage } from '@ionic/storage'; import { Device } from '@ionic-native/device'; @@ -23,7 +22,7 @@ export class MyApp { scope: Array = ['basic','stream','write_post','files']; - constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen, + constructor(public platform: Platform, public splashScreen: SplashScreen, private storage: Storage, private device: Device) { this.initializeApp(); @@ -57,7 +56,6 @@ export class MyApp { this.initialPage('personal'); }); - this.statusBar.styleLightContent(); this.splashScreen.hide(); // console.log('---'); // console.log(this.device.platform); diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9c73034..d08249d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -8,7 +8,6 @@ import { StreamPage, NewPostModal, PostMenu } from '../pages/stream/stream'; import { ThreadPage } from '../pages/thread/thread'; import { SettingsPage } from '../pages/settings/settings'; -import { StatusBar } from '@ionic-native/status-bar'; import { SplashScreen } from '@ionic-native/splash-screen'; import { IonicStorageModule } from '@ionic/storage'; import { Device } from '@ionic-native/device'; @@ -46,7 +45,6 @@ import { ParserPipe } from '../pipes/parser/parser'; PostMenu ], providers: [ - StatusBar, SplashScreen, Device, FileChooser,