mirror of
https://github.com/nextcloud/android.git
synced 2024-11-23 21:55:48 +03:00
Merge a1be1064d2
into 75d6de9b7c
This commit is contained in:
commit
7eaba89ae3
13 changed files with 58 additions and 69 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -18,7 +18,6 @@ target/
|
||||||
# Local configuration files (sdk path, etc)
|
# Local configuration files (sdk path, etc)
|
||||||
local.properties
|
local.properties
|
||||||
tests/local.properties
|
tests/local.properties
|
||||||
lint.xml
|
|
||||||
|
|
||||||
# Mac .DS_Store files
|
# Mac .DS_Store files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
6
lint.xml
Normal file
6
lint.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<lint>
|
||||||
|
<issue id="InvalidPackage">
|
||||||
|
<ignore path="**/freemarker-2.3.23.jar"/>
|
||||||
|
</issue>
|
||||||
|
</lint>
|
|
@ -1,2 +1,2 @@
|
||||||
DO NOT TOUCH; GENERATED BY DRONE
|
DO NOT TOUCH; GENERATED BY DRONE
|
||||||
<span class="mdl-layout-title">Lint Report: 32 errors and 678 warnings</span>
|
<span class="mdl-layout-title">Lint Report: 20 errors and 676 warnings</span>
|
||||||
|
|
|
@ -563,7 +563,7 @@ public class AuthenticatorActivity extends AccountAuthenticatorActivity
|
||||||
/// step 2 - set properties of UI elements (text, visibility, enabled...)
|
/// step 2 - set properties of UI elements (text, visibility, enabled...)
|
||||||
Button welcomeLink = (Button) findViewById(R.id.welcome_link);
|
Button welcomeLink = (Button) findViewById(R.id.welcome_link);
|
||||||
welcomeLink.setVisibility(isWelcomeLinkVisible ? View.VISIBLE : View.GONE);
|
welcomeLink.setVisibility(isWelcomeLinkVisible ? View.VISIBLE : View.GONE);
|
||||||
welcomeLink.setText(String.format(getString(R.string.auth_register), getString(R.string.app_name)));
|
welcomeLink.setText(getString(R.string.auth_register));
|
||||||
|
|
||||||
TextView instructionsView = (TextView) findViewById(R.id.instructions_message);
|
TextView instructionsView = (TextView) findViewById(R.id.instructions_message);
|
||||||
if (instructionsMessageText != null) {
|
if (instructionsMessageText != null) {
|
||||||
|
|
|
@ -23,6 +23,7 @@ import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
@ -71,26 +72,22 @@ public class PassCodeManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onActivityStarted(Activity activity) {
|
public void onActivityStarted(Activity activity) {
|
||||||
if (!sExemptOfPasscodeActivites.contains(activity.getClass()) &&
|
if (!sExemptOfPasscodeActivites.contains(activity.getClass()) && passCodeShouldBeRequested()) {
|
||||||
passCodeShouldBeRequested()
|
|
||||||
){
|
|
||||||
|
|
||||||
Intent i = new Intent(MainApp.getAppContext(), PassCodeActivity.class);
|
Intent i = new Intent(MainApp.getAppContext(), PassCodeActivity.class);
|
||||||
i.setAction(PassCodeActivity.ACTION_CHECK);
|
i.setAction(PassCodeActivity.ACTION_CHECK);
|
||||||
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
activity.startActivity(i);
|
activity.startActivity(i);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sExemptOfPasscodeActivites.contains(activity.getClass()) &&
|
if (!sExemptOfPasscodeActivites.contains(activity.getClass()) &&
|
||||||
fingerprintShouldBeRequested() && FingerprintActivity.isFingerprintReady(MainApp.getAppContext())
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
|
||||||
){
|
fingerprintShouldBeRequested() && FingerprintActivity.isFingerprintReady(MainApp.getAppContext())) {
|
||||||
|
|
||||||
Intent i = new Intent(MainApp.getAppContext(), FingerprintActivity.class);
|
Intent i = new Intent(MainApp.getAppContext(), FingerprintActivity.class);
|
||||||
i.setAction(PassCodeActivity.ACTION_CHECK);
|
i.setAction(PassCodeActivity.ACTION_CHECK);
|
||||||
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
activity.startActivity(i);
|
activity.startActivity(i);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mVisibleActivitiesCounter++; // keep it AFTER passCodeShouldBeRequested was checked
|
mVisibleActivitiesCounter++; // keep it AFTER passCodeShouldBeRequested was checked
|
||||||
|
|
|
@ -224,7 +224,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
Log_OC.d(TAG, "Creating ownCloud media service");
|
Log_OC.d(TAG, "Creating ownCloud media service");
|
||||||
|
|
||||||
mWifiLock = ((WifiManager) getSystemService(Context.WIFI_SERVICE)).
|
mWifiLock = ((WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE)).
|
||||||
createWifiLock(WifiManager.WIFI_MODE_FULL, MEDIA_WIFI_LOCK_TAG);
|
createWifiLock(WifiManager.WIFI_MODE_FULL, MEDIA_WIFI_LOCK_TAG);
|
||||||
|
|
||||||
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
|
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
|
||||||
|
@ -499,7 +499,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
|
||||||
|
|
||||||
/** Called when media player is done playing current song. */
|
/** Called when media player is done playing current song. */
|
||||||
public void onCompletion(MediaPlayer player) {
|
public void onCompletion(MediaPlayer player) {
|
||||||
Toast.makeText(this, String.format(getString(R.string.media_event_done, mFile.getFileName())), Toast.LENGTH_LONG).show();
|
Toast.makeText(this, String.format(getString(R.string.media_event_done), mFile.getFileName()), Toast.LENGTH_LONG).show();
|
||||||
if (mMediaController != null) {
|
if (mMediaController != null) {
|
||||||
// somebody is still bound to the service
|
// somebody is still bound to the service
|
||||||
player.seekTo(0);
|
player.seekTo(0);
|
||||||
|
|
|
@ -95,7 +95,7 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict
|
||||||
// current Account
|
// current Account
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
setFile(file);
|
setFile(file);
|
||||||
ConflictsResolveDialog d = ConflictsResolveDialog.newInstance(file.getRemotePath(), this);
|
ConflictsResolveDialog d = ConflictsResolveDialog.newInstance(this);
|
||||||
d.showDialog(this);
|
d.showDialog(this);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -237,7 +237,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
|
||||||
if (mIsAccountChooserActive) {
|
if (mIsAccountChooserActive) {
|
||||||
toggleAccountList();
|
toggleAccountList();
|
||||||
}
|
}
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
mDrawerToggle.setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());
|
mDrawerToggle.setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());
|
||||||
|
|
||||||
if (pendingRunnable != null) {
|
if (pendingRunnable != null) {
|
||||||
|
@ -250,7 +250,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
|
||||||
public void onDrawerOpened(View drawerView) {
|
public void onDrawerOpened(View drawerView) {
|
||||||
super.onDrawerOpened(drawerView);
|
super.onDrawerOpened(drawerView);
|
||||||
mDrawerToggle.setDrawerIndicatorEnabled(true);
|
mDrawerToggle.setDrawerIndicatorEnabled(true);
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,6 @@ import com.owncloud.android.MainApp;
|
||||||
import com.owncloud.android.R;
|
import com.owncloud.android.R;
|
||||||
import com.owncloud.android.authentication.AccountUtils;
|
import com.owncloud.android.authentication.AccountUtils;
|
||||||
import com.owncloud.android.authentication.AuthenticatorActivity;
|
import com.owncloud.android.authentication.AuthenticatorActivity;
|
||||||
import com.owncloud.android.datamodel.ArbitraryDataProvider;
|
|
||||||
import com.owncloud.android.datamodel.OCFile;
|
import com.owncloud.android.datamodel.OCFile;
|
||||||
import com.owncloud.android.files.services.FileDownloader;
|
import com.owncloud.android.files.services.FileDownloader;
|
||||||
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
|
||||||
|
@ -448,7 +447,7 @@ public abstract class FileActivity extends DrawerActivity
|
||||||
operation, getResources()), Toast.LENGTH_LONG);
|
operation, getResources()), Toast.LENGTH_LONG);
|
||||||
msg.show();
|
msg.show();
|
||||||
}
|
}
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,6 @@ import com.owncloud.android.ui.preview.PreviewMediaFragment;
|
||||||
import com.owncloud.android.ui.preview.PreviewTextFragment;
|
import com.owncloud.android.ui.preview.PreviewTextFragment;
|
||||||
import com.owncloud.android.ui.preview.PreviewVideoActivity;
|
import com.owncloud.android.ui.preview.PreviewVideoActivity;
|
||||||
import com.owncloud.android.utils.DataHolderUtil;
|
import com.owncloud.android.utils.DataHolderUtil;
|
||||||
import com.owncloud.android.utils.DisplayUtils;
|
|
||||||
import com.owncloud.android.utils.ErrorMessageAdapter;
|
import com.owncloud.android.utils.ErrorMessageAdapter;
|
||||||
import com.owncloud.android.utils.MimeTypeUtil;
|
import com.owncloud.android.utils.MimeTypeUtil;
|
||||||
import com.owncloud.android.utils.PermissionUtil;
|
import com.owncloud.android.utils.PermissionUtil;
|
||||||
|
@ -1650,7 +1649,7 @@ public class FileDisplayActivity extends HookActivity
|
||||||
showDetails(file);
|
showDetails(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1681,7 +1680,7 @@ public class FileDisplayActivity extends HookActivity
|
||||||
if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())) {
|
if (getStorageManager().getFileById(removedFile.getParentId()).equals(getCurrentDir())) {
|
||||||
refreshListOfFilesFragment(false);
|
refreshListOfFilesFragment(false);
|
||||||
}
|
}
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
} else {
|
} else {
|
||||||
if (result.isSslRecoverableException()) {
|
if (result.isSslRecoverableException()) {
|
||||||
mLastSslUntrustedServerResult = result;
|
mLastSslUntrustedServerResult = result;
|
||||||
|
@ -1799,7 +1798,7 @@ public class FileDisplayActivity extends HookActivity
|
||||||
if (result.isSuccess() && operation.transferWasRequested()) {
|
if (result.isSuccess() && operation.transferWasRequested()) {
|
||||||
OCFile syncedFile = operation.getLocalFile();
|
OCFile syncedFile = operation.getLocalFile();
|
||||||
onTransferStateChanged(syncedFile, true, true);
|
onTransferStateChanged(syncedFile, true, true);
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
refreshShowDetails();
|
refreshShowDetails();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,6 @@
|
||||||
package com.owncloud.android.ui.activity;
|
package com.owncloud.android.ui.activity;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.annotation.TargetApi;
|
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -71,7 +69,7 @@ import javax.crypto.SecretKey;
|
||||||
/**
|
/**
|
||||||
* Activity to handle access to the app based on the fingerprint.
|
* Activity to handle access to the app based on the fingerprint.
|
||||||
*/
|
*/
|
||||||
@TargetApi(Build.VERSION_CODES.M)
|
@RequiresApi(Build.VERSION_CODES.M)
|
||||||
public class FingerprintActivity extends AppCompatActivity {
|
public class FingerprintActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private static final String TAG = FingerprintActivity.class.getSimpleName();
|
private static final String TAG = FingerprintActivity.class.getSimpleName();
|
||||||
|
@ -274,28 +272,21 @@ public class FingerprintActivity extends AppCompatActivity {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.M)
|
|
||||||
static public boolean isFingerprintReady(Context context) {
|
static public boolean isFingerprintReady(Context context) {
|
||||||
try {
|
try {
|
||||||
FingerprintManager fingerprintManager =
|
FingerprintManager fingerprintManager =
|
||||||
(FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
|
(FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE);
|
||||||
|
|
||||||
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.USE_FINGERPRINT)
|
return ActivityCompat.checkSelfPermission(context, Manifest.permission.USE_FINGERPRINT) ==
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
PackageManager.PERMISSION_GRANTED && fingerprintManager.isHardwareDetected() &&
|
||||||
return false;
|
fingerprintManager.hasEnrolledFingerprints();
|
||||||
}
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
||||||
return fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints();
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
@RequiresApi(Build.VERSION_CODES.M)
|
||||||
class FingerprintHandler extends FingerprintManager.AuthenticationCallback {
|
class FingerprintHandler extends FingerprintManager.AuthenticationCallback {
|
||||||
|
|
||||||
private TextView text;
|
private TextView text;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/**
|
/*
|
||||||
* ownCloud Android client application
|
* ownCloud Android client application
|
||||||
*
|
*
|
||||||
* @author Bartek Przybylski
|
* @author Bartek Przybylski
|
||||||
|
@ -24,6 +24,7 @@ package com.owncloud.android.ui.dialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.app.DialogFragment;
|
import android.support.v4.app.DialogFragment;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
import android.support.v4.app.FragmentTransaction;
|
||||||
|
@ -38,7 +39,7 @@ import com.owncloud.android.R;
|
||||||
*/
|
*/
|
||||||
public class ConflictsResolveDialog extends DialogFragment {
|
public class ConflictsResolveDialog extends DialogFragment {
|
||||||
|
|
||||||
public static enum Decision {
|
public enum Decision {
|
||||||
CANCEL,
|
CANCEL,
|
||||||
KEEP_BOTH,
|
KEEP_BOTH,
|
||||||
OVERWRITE,
|
OVERWRITE,
|
||||||
|
@ -46,35 +47,32 @@ public class ConflictsResolveDialog extends DialogFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
OnConflictDecisionMadeListener mListener;
|
OnConflictDecisionMadeListener mListener;
|
||||||
|
|
||||||
public static ConflictsResolveDialog newInstance(String path, OnConflictDecisionMadeListener listener) {
|
public static ConflictsResolveDialog newInstance(OnConflictDecisionMadeListener listener) {
|
||||||
ConflictsResolveDialog f = new ConflictsResolveDialog();
|
ConflictsResolveDialog f = new ConflictsResolveDialog();
|
||||||
Bundle args = new Bundle();
|
|
||||||
args.putString("remotepath", path);
|
|
||||||
f.setArguments(args);
|
|
||||||
f.mListener = listener;
|
f.mListener = listener;
|
||||||
return f;
|
return f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
String remotepath = getArguments().getString("remotepath");
|
|
||||||
return new AlertDialog.Builder(getActivity(), R.style.Theme_ownCloud_Dialog)
|
return new AlertDialog.Builder(getActivity(), R.style.Theme_ownCloud_Dialog)
|
||||||
.setIcon(R.drawable.ic_warning)
|
.setIcon(R.drawable.ic_warning)
|
||||||
.setTitle(R.string.conflict_title)
|
.setTitle(R.string.conflict_title)
|
||||||
.setMessage(String.format(getString(R.string.conflict_message), remotepath))
|
.setMessage(getString(R.string.conflict_message))
|
||||||
.setPositiveButton(R.string.conflict_use_local_version,
|
.setPositiveButton(R.string.conflict_use_local_version,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
mListener.conflictDecisionMade(Decision.OVERWRITE);
|
mListener.conflictDecisionMade(Decision.OVERWRITE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNeutralButton(R.string.conflict_keep_both,
|
.setNeutralButton(R.string.conflict_keep_both,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
|
@ -82,16 +80,16 @@ public class ConflictsResolveDialog extends DialogFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.setNegativeButton(R.string.conflict_use_server_version,
|
.setNegativeButton(R.string.conflict_use_server_version,
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
if (mListener != null) {
|
if (mListener != null) {
|
||||||
mListener.conflictDecisionMade(Decision.SERVER);
|
mListener.conflictDecisionMade(Decision.SERVER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.create();
|
.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showDialog(AppCompatActivity activity) {
|
public void showDialog(AppCompatActivity activity) {
|
||||||
|
@ -120,6 +118,6 @@ public class ConflictsResolveDialog extends DialogFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface OnConflictDecisionMadeListener {
|
public interface OnConflictDecisionMadeListener {
|
||||||
public void conflictDecisionMade(Decision decision);
|
void conflictDecisionMade(Decision decision);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,7 +195,7 @@ public class PreviewImageActivity extends FileActivity implements
|
||||||
private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation,
|
private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation,
|
||||||
RemoteOperationResult result) {
|
RemoteOperationResult result) {
|
||||||
if (result.isSuccess()) {
|
if (result.isSuccess()) {
|
||||||
invalidateOptionsMenu();
|
supportInvalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue