Skip to content

Commit

Permalink
Target Pie & AS3.3/tools - updated libs, migrate to androidx + appcompat
Browse files Browse the repository at this point in the history
A bunch of stuff has to happen together in this one commit:

* Using latest Android Studio 3.3 & build tools
* Targets API 28 (still backwards compat to 16)
* Updates numerous library dependencies to latest
* Migrate appcompat themes, classes, compat code & layouts
  for use w/androidx
* Switch to new androidx support libraries
* Remove unused "signal_version" & move appcompat version to libraries
* Manifest:  Request FOREGROUND_SERVICE normal permission for Pie
* Add a few Lint bits (using androidx annotation support)
* Use androidx preference support rather than takisoft fixed version
* add XML prolog to a few files.
* add mdtp_done_button XML to use androidx appcompatbutton/fix text spacing
* A few changes to margins of button text to make them more readable
* Add gradle.properties per gradle spec & use Jetifier/androidx/R8/D8

Because of the interdependencies of the above changes, they are all
submitted together.

This may not be 100% functional on all devices and with all features, so
please test thoroughly.
  • Loading branch information
fat-tire committed Sep 26, 2018
1 parent 802930a commit df601f5
Show file tree
Hide file tree
Showing 41 changed files with 237 additions and 207 deletions.
45 changes: 21 additions & 24 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0-alpha03'

classpath 'com.android.tools.build:gradle:3.3.0-alpha12'
}

}
Expand Down Expand Up @@ -36,20 +35,17 @@ allprojects {
// these are common variables used in */build.gradle
version_number = getVersionName()
group_info = "haven"
signal_version = "2.3.0"
buildToolsVersion = "27.0.3"
compileSdkVersion = 27
buildToolsVersion = "28.0.3"
minSdkVersion = 16
targetSdkVersion = 27
appcompat = 'com.android.support:appcompat-v7:27.1.1'
targetSdkVersion = 28
}

}


android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
compileSdkVersion 28
buildToolsVersion = '28.0.3'

packagingOptions {
exclude 'META-INF/LICENSE.txt'
Expand All @@ -73,7 +69,7 @@ android {
versionName getVersionName()
archivesBaseName = "Haven-$versionName"
minSdkVersion 16
targetSdkVersion 27
targetSdkVersion 28
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
Expand Down Expand Up @@ -107,30 +103,31 @@ android {
}

dependencies {
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.preference:preference:1.0.0'
implementation 'androidx.multidex:multidex:2.0.0'
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'com.google.android.material:material:1.0.0-rc02'
implementation 'com.wdullaer:materialdatetimepicker:3.6.4'
implementation 'com.github.guardianproject:signal-cli-android:v0.6.0-android-beta-1'
implementation 'com.github.satyan:sugar:1.5'
implementation 'net.the4thdimension:audio-wife:1.0.3'
implementation 'com.github.apl-devs:appintro:v4.2.3'
implementation 'info.guardianproject.netcipher:netcipher:2.0.0-alpha1'
implementation 'com.nanohttpd:nanohttpd-webserver:2.2.0'
implementation 'com.github.apl-devs:appintro:master' /* use master until androidx ver is released */
implementation 'info.guardianproject.netcipher:netcipher:2.0.0-beta1'
implementation 'org.nanohttpd:nanohttpd-webserver:2.3.1'
implementation 'me.angrybyte.picker:picker:1.3.1'
implementation 'com.github.stfalcon:frescoimageviewer:0.5.0'
implementation 'com.facebook.fresco:fresco:1.9.0'
implementation 'com.facebook.fresco:fresco:1.10.0'
implementation 'com.github.derlio.waveform:library:1.0.3@aar'
implementation 'org.firezenk:audiowaves:1.1@aar'
implementation 'com.maxproj.simplewaveform:app:1.0.0'
implementation 'com.takisoft.fix:preference-v7:27.1.0.0'
implementation 'com.wdullaer:materialdatetimepicker:3.5.2'
implementation 'com.googlecode.libphonenumber:libphonenumber:8.8.10'
implementation('com.mikepenz:aboutlibraries:6.0.2@aar') {
implementation 'com.googlecode.libphonenumber:libphonenumber:8.9.14'
implementation('com.mikepenz:aboutlibraries:6.1.1@aar') {
transitive = true
}
implementation 'com.asksira.android:cameraviewplus:0.9.4'
implementation 'com.asksira.android:cameraviewplus:0.9.5'
implementation 'com.github.halilozercan:BetterVideoPlayer:1.1.0'
implementation 'io.github.silvaren:easyrs:0.5.3'
implementation 'org.jcodec:jcodec:0.2.3'
Expand Down
5 changes: 5 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

android.enableJetifier=true
android.useAndroidX=true
android.enableR8=true
android.enableD8=true
3 changes: 2 additions & 1 deletion src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

<uses-feature
android:name="android.hardware.camera"
Expand Down Expand Up @@ -120,7 +121,7 @@
</receiver>

<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="org.havenapp.main.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
Expand Down
9 changes: 4 additions & 5 deletions src/main/java/org/havenapp/main/HavenApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@

package org.havenapp.main;

import android.support.multidex.MultiDexApplication;
import android.support.v7.app.AppCompatDelegate;
import android.text.TextUtils;
import android.util.Log;

import com.facebook.drawee.backends.pipeline.Fresco;
Expand All @@ -29,10 +26,12 @@
import com.orm.SugarContext;
import com.orm.SugarDb;

import org.havenapp.main.service.WebServer;

import java.io.IOException;

import org.havenapp.main.service.SignalSender;
import org.havenapp.main.service.WebServer;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.multidex.MultiDexApplication;

public class HavenApp extends MultiDexApplication {

Expand Down
22 changes: 12 additions & 10 deletions src/main/java/org/havenapp/main/ListActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,15 @@
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.mikepenz.aboutlibraries.Libs;
import com.mikepenz.aboutlibraries.LibsBuilder;

Expand All @@ -57,6 +50,15 @@
import java.util.List;
import java.util.StringTokenizer;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

public class ListActivity extends AppCompatActivity {

private RecyclerView recyclerView;
Expand Down Expand Up @@ -94,7 +96,7 @@ protected void onCreate(Bundle savedInstanceState) {
ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}

Expand Down
7 changes: 4 additions & 3 deletions src/main/java/org/havenapp/main/MonitorActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Environment;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
Expand All @@ -46,6 +43,10 @@
import java.io.FileOutputStream;
import java.io.IOException;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import static org.havenapp.main.Utils.getTimerText;

public class MonitorActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/org/havenapp/main/PreferenceManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package org.havenapp.main;


import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
Expand All @@ -29,6 +28,8 @@
import java.io.File;
import java.util.Date;

import androidx.appcompat.app.AppCompatActivity;


public class PreferenceManager {

Expand Down Expand Up @@ -98,7 +99,7 @@ public class PreferenceManager {

public PreferenceManager(Context context) {
this.context = context;
this.appSharedPrefs = context.getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE);
this.appSharedPrefs = context.getSharedPreferences(APP_SHARED_PREFS, AppCompatActivity.MODE_PRIVATE);
this.prefsEditor = appSharedPrefs.edit();
}

Expand Down
9 changes: 2 additions & 7 deletions src/main/java/org/havenapp/main/SettingsActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,9 @@

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import java.io.File;
import java.util.ArrayList;

import info.guardianproject.netcipher.proxy.OrbotHelper;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

public class SettingsActivity extends AppCompatActivity {

Expand Down
26 changes: 14 additions & 12 deletions src/main/java/org/havenapp/main/SettingsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,13 @@
import android.os.Environment;
import android.os.PowerManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.v14.preference.SwitchPreference;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.preference.EditTextPreference;
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.SwitchPreferenceCompat;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import android.widget.Switch;
import android.widget.Toast;

import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.takisoft.fix.support.v7.preference.PreferenceFragmentCompat;
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;

import org.havenapp.main.service.SignalSender;
Expand All @@ -43,18 +34,29 @@
import java.io.File;
import java.util.Locale;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreference;
import androidx.preference.SwitchPreferenceCompat;
import info.guardianproject.netcipher.proxy.OrbotHelper;


public class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, TimePickerDialog.OnTimeSetListener {

private PreferenceManager preferences;
private HavenApp app;
private AppCompatActivity mActivity;

@Override
public void onCreatePreferencesFix(Bundle bundle, String s) {
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.settings);
mActivity = getActivity();
mActivity = (AppCompatActivity) getActivity();
preferences = new PreferenceManager(mActivity);
setHasOptionsMenu(true);
app = (HavenApp) mActivity.getApplication();
Expand Down Expand Up @@ -239,7 +241,7 @@ protected void save() {

preferences.activateHeartbeat(heartbeatMonitorActive);

mActivity.setResult(Activity.RESULT_OK);
mActivity.setResult(AppCompatActivity.RESULT_OK);
mActivity.finish();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.havenapp.main.sensors;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
Expand All @@ -13,13 +12,14 @@
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import android.util.FloatMath;
import android.util.Log;

import org.havenapp.main.PreferenceManager;
import org.havenapp.main.model.EventTrigger;
import org.havenapp.main.service.MonitorService;

import androidx.appcompat.app.AppCompatActivity;

/**
* Created by n8fr8 on 3/10/17.
*/
Expand Down Expand Up @@ -86,7 +86,7 @@ public AccelerometerMonitor(Context context) {
context.bindService(new Intent(context,
MonitorService.class), mConnection, Context.BIND_ABOVE_CLIENT);

sensorMgr = (SensorManager) context.getSystemService(Activity.SENSOR_SERVICE);
sensorMgr = (SensorManager) context.getSystemService(AppCompatActivity.SENSOR_SERVICE);
accelerometer = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

if (accelerometer == null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.havenapp.main.sensors;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
Expand All @@ -19,6 +18,8 @@
import org.havenapp.main.model.EventTrigger;
import org.havenapp.main.service.MonitorService;

import androidx.appcompat.app.AppCompatActivity;

/**
* Created by n8fr8 on 3/10/17.
*/
Expand Down Expand Up @@ -65,7 +66,7 @@ public AmbientLightMonitor(Context context) {
context.bindService(new Intent(context,
MonitorService.class), mConnection, Context.BIND_ABOVE_CLIENT);

sensorMgr = (SensorManager) context.getSystemService(Activity.SENSOR_SERVICE);
sensorMgr = (SensorManager) context.getSystemService(AppCompatActivity.SENSOR_SERVICE);
//noinspection RedundantCast
sensor = (Sensor) sensorMgr.getDefaultSensor(Sensor.TYPE_LIGHT);

Expand Down
5 changes: 3 additions & 2 deletions src/main/java/org/havenapp/main/sensors/BarometerMonitor.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package org.havenapp.main.sensors;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
Expand All @@ -19,6 +18,8 @@
import org.havenapp.main.model.EventTrigger;
import org.havenapp.main.service.MonitorService;

import androidx.appcompat.app.AppCompatActivity;

/**
* Created by n8fr8 on 3/10/17.
*/
Expand Down Expand Up @@ -71,7 +72,7 @@ public BarometerMonitor(Context context) {
context.bindService(new Intent(context,
MonitorService.class), mConnection, Context.BIND_ABOVE_CLIENT);

sensorMgr = (SensorManager) context.getSystemService(Activity.SENSOR_SERVICE);
sensorMgr = (SensorManager) context.getSystemService(AppCompatActivity.SENSOR_SERVICE);
sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_PRESSURE);

if (sensor == null) {
Expand Down
Loading

0 comments on commit df601f5

Please sign in to comment.