diff --git a/.gitmodules b/.gitmodules index c4c91f7..efae3d9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "extern/UnifiedNlpApi"] path = extern/UnifiedNlpApi url = https://github.com/microg/android_external_UnifiedNlpApi.git +[submodule "extern/MicroGUiTools"] + path = extern/MicroGUiTools + url = https://github.com/microg/android_external_MicroGUiTools.git diff --git a/extern/MicroGUiTools b/extern/MicroGUiTools new file mode 160000 index 0000000..f34d87b --- /dev/null +++ b/extern/MicroGUiTools @@ -0,0 +1 @@ +Subproject commit f34d87bcc2bb44de1a8efd29b40c311dbea67049 diff --git a/microg-ui-tools b/microg-ui-tools new file mode 120000 index 0000000..42b2968 --- /dev/null +++ b/microg-ui-tools @@ -0,0 +1 @@ +extern/MicroGUiTools/microg-ui-tools/ \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index cc79756..6f070b6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,3 +2,5 @@ include ':unifiednlp-compat' include ':unifiednlp-api' include ':unifiednlp-base' include ':unifiednlp-app' + +include ':microg-ui-tools' diff --git a/unifiednlp-app/build.gradle b/unifiednlp-app/build.gradle index 7d147c9..8becff5 100644 --- a/unifiednlp-app/build.gradle +++ b/unifiednlp-app/build.gradle @@ -19,16 +19,29 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.android.tools.build:gradle:1.5.0' } } apply plugin: 'com.android.application' +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--tags', '--always', '--dirty' + standardOutput = stdout + } + return stdout.toString().trim() +} + android { compileSdkVersion 23 buildToolsVersion "23.0.2" + defaultConfig { + versionName getMyVersionName() + } + productFlavors { NetworkLocation { applicationId = 'com.google.android.gms' diff --git a/unifiednlp-base/build.gradle b/unifiednlp-base/build.gradle index 9d70adf..63db801 100644 --- a/unifiednlp-base/build.gradle +++ b/unifiednlp-base/build.gradle @@ -19,23 +19,36 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.3.0' + classpath 'com.android.tools.build:gradle:1.5.0' } } apply plugin: 'com.android.library' +String getMyVersionName() { + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--tags', '--always', '--dirty' + standardOutput = stdout + } + return stdout.toString().trim() +} + android { compileSdkVersion 23 buildToolsVersion "23.0.2" + + defaultConfig { + versionName getMyVersionName() + } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 } } dependencies { - compile 'com.android.support:support-v4:23.0.1' - compile 'com.android.support:appcompat-v7:23.0.1' + compile project(":microg-ui-tools") compile project(':unifiednlp-api') provided project(':unifiednlp-compat') } diff --git a/unifiednlp-base/src/main/java/android/support/v4/preference/PreferenceFragment.java b/unifiednlp-base/src/main/java/android/support/v4/preference/PreferenceFragment.java deleted file mode 100644 index 3d0b9bd..0000000 --- a/unifiednlp-base/src/main/java/android/support/v4/preference/PreferenceFragment.java +++ /dev/null @@ -1,297 +0,0 @@ -package android.support.v4.preference; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.preference.Preference; -import android.preference.PreferenceManager; -import android.preference.PreferenceScreen; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ListView; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; - -public abstract class PreferenceFragment extends Fragment { - - private static final int FIRST_REQUEST_CODE = 100; - private static final int MSG_BIND_PREFERENCES = 1; - private static final String PREFERENCES_TAG = "android:preferences"; - private boolean mHavePrefs; - private boolean mInitDone; - private ListView mList; - private PreferenceManager mPreferenceManager; - - private Handler mHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - - case MSG_BIND_PREFERENCES: - bindPreferences(); - break; - } - } - }; - - final private Runnable mRequestFocus = new Runnable() { - public void run() { - mList.focusableViewAvailable(mList); - } - }; - - private void bindPreferences() { - PreferenceScreen localPreferenceScreen = getPreferenceScreen(); - if (localPreferenceScreen != null) { - ListView localListView = getListView(); - localPreferenceScreen.bind(localListView); - } - } - - private void ensureList() { - if (mList == null) { - View view = getView(); - if (view == null) { - throw new IllegalStateException("Content view not yet created"); - } - - View listView = view.findViewById(android.R.id.list); - if (!(listView instanceof ListView)) { - throw new RuntimeException( - "Content has view with id attribute 'android.R.id.list' that is not a ListView class"); - } - - mList = (ListView) listView; - if (mList == null) { - throw new RuntimeException( - "Your content must have a ListView whose id attribute is 'android.R.id.list'"); - } - - mHandler.post(mRequestFocus); - } - } - - private void postBindPreferences() { - if (mHandler.hasMessages(MSG_BIND_PREFERENCES)) { - mHandler.obtainMessage(MSG_BIND_PREFERENCES).sendToTarget(); - } - } - - private void requirePreferenceManager() { - if (this.mPreferenceManager == null) { - throw new RuntimeException("This should be called after super.onCreate."); - } - } - - public void addPreferencesFromIntent(Intent intent) { - requirePreferenceManager(); - PreferenceScreen screen = inflateFromIntent(intent, getPreferenceScreen()); - setPreferenceScreen(screen); - } - - public void addPreferencesFromResource(int resId) { - requirePreferenceManager(); - PreferenceScreen screen = inflateFromResource(getActivity(), resId, getPreferenceScreen()); - setPreferenceScreen(screen); - } - - public Preference findPreference(CharSequence key) { - if (mPreferenceManager == null) { - return null; - } - return mPreferenceManager.findPreference(key); - } - - public ListView getListView() { - ensureList(); - return mList; - } - - public PreferenceManager getPreferenceManager() { - return mPreferenceManager; - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - getListView().setScrollBarStyle(0); - if (mHavePrefs) { - bindPreferences(); - } - mInitDone = true; - if (savedInstanceState != null) { - Bundle localBundle = savedInstanceState.getBundle(PREFERENCES_TAG); - if (localBundle != null) { - PreferenceScreen screen = getPreferenceScreen(); - if (screen != null) { - screen.restoreHierarchyState(localBundle); - } - } - } - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - dispatchActivityResult(requestCode, resultCode, data); - } - - @Override - public void onCreate(Bundle paramBundle) { - super.onCreate(paramBundle); - mPreferenceManager = createPreferenceManager(); - } - - @Override - public View onCreateView(LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup, - Bundle paramBundle) { - ListView listView = new ListView(paramLayoutInflater.getContext()); - listView.setId(android.R.id.list); - listView.setDrawSelectorOnTop(false); - listView.setPadding(12, 6, 12, 0); - //listView.setSelector(null); - return listView; - } - - @Override - public void onDestroy() { - super.onDestroy(); - dispatchActivityDestroy(); - } - - @Override - public void onDestroyView() { - mList = null; - mHandler.removeCallbacks(mRequestFocus); - mHandler.removeMessages(MSG_BIND_PREFERENCES); - super.onDestroyView(); - } - - @Override - public void onSaveInstanceState(Bundle bundle) { - super.onSaveInstanceState(bundle); - PreferenceScreen screen = getPreferenceScreen(); - if (screen != null) { - Bundle localBundle = new Bundle(); - screen.saveHierarchyState(localBundle); - bundle.putBundle(PREFERENCES_TAG, localBundle); - } - } - - @Override - public void onStop() { - super.onStop(); - dispatchActivityStop(); - } - - /** - * Access methods with visibility private * - */ - - private PreferenceManager createPreferenceManager() { - try { - Constructor c = PreferenceManager.class - .getDeclaredConstructor(Activity.class, int.class); - c.setAccessible(true); - return c.newInstance(this.getActivity(), FIRST_REQUEST_CODE); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private PreferenceScreen getPreferenceScreen() { - try { - Method m = PreferenceManager.class.getDeclaredMethod("getPreferenceScreen"); - m.setAccessible(true); - return (PreferenceScreen) m.invoke(mPreferenceManager); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private void setPreferenceScreen(PreferenceScreen preferenceScreen) { - try { - Method m = PreferenceManager.class - .getDeclaredMethod("setPreferences", PreferenceScreen.class); - m.setAccessible(true); - boolean result = (Boolean) m.invoke(mPreferenceManager, preferenceScreen); - if (result && preferenceScreen != null) { - mHavePrefs = true; - if (mInitDone) { - postBindPreferences(); - } - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private void dispatchActivityResult(int requestCode, int resultCode, Intent data) { - try { - Method m = PreferenceManager.class - .getDeclaredMethod("dispatchActivityResult", int.class, int.class, - Intent.class); - m.setAccessible(true); - m.invoke(mPreferenceManager, requestCode, resultCode, data); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private void dispatchActivityDestroy() { - try { - Method m = PreferenceManager.class.getDeclaredMethod("dispatchActivityDestroy"); - m.setAccessible(true); - m.invoke(mPreferenceManager); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private void dispatchActivityStop() { - try { - Method m = PreferenceManager.class.getDeclaredMethod("dispatchActivityStop"); - m.setAccessible(true); - m.invoke(mPreferenceManager); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public PreferenceScreen inflateFromResource(Context context, int resId, - PreferenceScreen rootPreferences) { - PreferenceScreen preferenceScreen; - try { - Method m = PreferenceManager.class - .getDeclaredMethod("inflateFromResource", Context.class, int.class, - PreferenceScreen.class); - m.setAccessible(true); - preferenceScreen = (PreferenceScreen) m - .invoke(mPreferenceManager, context, resId, rootPreferences); - } catch (Exception e) { - throw new RuntimeException(e); - } - return preferenceScreen; - } - - public PreferenceScreen inflateFromIntent(Intent queryIntent, - PreferenceScreen rootPreferences) { - PreferenceScreen preferenceScreen; - try { - Method m = PreferenceManager.class - .getDeclaredMethod("inflateFromIntent", Intent.class, PreferenceScreen.class); - m.setAccessible(true); - preferenceScreen = (PreferenceScreen) m - .invoke(mPreferenceManager, queryIntent, rootPreferences); - } catch (Exception e) { - throw new RuntimeException(e); - } - return preferenceScreen; - } -} diff --git a/unifiednlp-base/src/main/java/org/microg/tools/selfcheck/AbstractSelfCheckActivity.java b/unifiednlp-base/src/main/java/org/microg/tools/selfcheck/AbstractSelfCheckActivity.java deleted file mode 100644 index cdbb4cb..0000000 --- a/unifiednlp-base/src/main/java/org/microg/tools/selfcheck/AbstractSelfCheckActivity.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed 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.microg.tools.selfcheck; - -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import org.microg.nlp.R; - -import java.util.ArrayList; -import java.util.List; - -public abstract class AbstractSelfCheckActivity extends AppCompatActivity implements SelfCheckGroup.ResultCollector { - - protected abstract void prepareSelfCheckList(List checks); - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.self_check); - setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); - - List selfCheckGroupList = new ArrayList(); - prepareSelfCheckList(selfCheckGroupList); - - for (SelfCheckGroup group : selfCheckGroupList) { - group.doChecks(this, this); - } - } - - public void addResult(String name, boolean result, String resolution) { - ViewGroup root = (ViewGroup) findViewById(R.id.self_check_root); - View resultEntry = LayoutInflater.from(this).inflate(R.layout.self_check_entry, root, false); - ((TextView) resultEntry.findViewById(R.id.self_check_name)).setText(name); - ((ImageView) resultEntry.findViewById(R.id.self_check_result)).setImageResource(result ? android.R.drawable.presence_online : android.R.drawable.presence_busy); - ((TextView) resultEntry.findViewById(R.id.self_check_resolution)).setText(resolution); - resultEntry.findViewById(R.id.self_check_resolution).setVisibility(result ? View.GONE : View.VISIBLE); - root.addView(resultEntry); - } -} diff --git a/unifiednlp-base/src/main/java/org/microg/tools/selfcheck/SelfCheckGroup.java b/unifiednlp-base/src/main/java/org/microg/tools/selfcheck/SelfCheckGroup.java deleted file mode 100644 index f65ef77..0000000 --- a/unifiednlp-base/src/main/java/org/microg/tools/selfcheck/SelfCheckGroup.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2013-2015 microG Project Team - * - * Licensed 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.microg.tools.selfcheck; - -import android.content.Context; - -public interface SelfCheckGroup { - String getGroupName(Context context); - - void doChecks(Context context, ResultCollector collector); - - interface ResultCollector { - void addResult(String name, boolean value, String resolution); - } -} diff --git a/unifiednlp-base/src/main/res/layout/self_check.xml b/unifiednlp-base/src/main/res/layout/self_check.xml deleted file mode 100644 index c73367a..0000000 --- a/unifiednlp-base/src/main/res/layout/self_check.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/unifiednlp-base/src/main/res/layout/self_check_entry.xml b/unifiednlp-base/src/main/res/layout/self_check_entry.xml deleted file mode 100644 index 2096f45..0000000 --- a/unifiednlp-base/src/main/res/layout/self_check_entry.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/unifiednlp-base/src/main/res/layout/toolbar.xml b/unifiednlp-base/src/main/res/layout/toolbar.xml deleted file mode 100644 index 7a11e1a..0000000 --- a/unifiednlp-base/src/main/res/layout/toolbar.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/unifiednlp-base/src/main/res/values/colors.xml b/unifiednlp-base/src/main/res/values/colors.xml deleted file mode 100644 index 111cc29..0000000 --- a/unifiednlp-base/src/main/res/values/colors.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - #ff263238 - #ff21272b - #ff009688 - diff --git a/unifiednlp-base/src/main/res/values/themes.xml b/unifiednlp-base/src/main/res/values/themes.xml deleted file mode 100644 index 76e2a0b..0000000 --- a/unifiednlp-base/src/main/res/values/themes.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -