diff --git a/app/build.gradle b/app/build.gradle index 7092bca7..5ed3ab53 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId 'com.stevenschoen.putionew' minSdkVersion 21 targetSdkVersion 27 - versionCode 131 - versionName '4.3.2' + versionCode 132 + versionName '4.3.3' multiDexEnabled true kapt { @@ -64,7 +64,7 @@ dependencies { implementation "com.android.support:recyclerview-v7:$supportLibVersion" implementation "com.android.support:cardview-v7:$supportLibVersion" implementation "com.android.support:mediarouter-v7:$supportLibVersion" - implementation 'com.android.support.constraint:constraint-layout:1.1.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.1' def playServicesVersion = "11.8.0" implementation "com.google.firebase:firebase-core:$playServicesVersion" implementation "com.google.android.gms:play-services-cast-framework:$playServicesVersion" diff --git a/app/src/main/java/com/stevenschoen/putionew/LoginActivity.java b/app/src/main/java/com/stevenschoen/putionew/LoginActivity.java index 7fcef28b..9ca645d9 100644 --- a/app/src/main/java/com/stevenschoen/putionew/LoginActivity.java +++ b/app/src/main/java/com/stevenschoen/putionew/LoginActivity.java @@ -4,6 +4,7 @@ import android.animation.AnimatorListenerAdapter; import android.content.Intent; import android.content.SharedPreferences; +import android.net.Uri; import android.os.Bundle; import android.os.StrictMode; import android.os.StrictMode.ThreadPolicy; @@ -47,7 +48,7 @@ public void onCreate(Bundle savedInstanceState) { StrictMode.setThreadPolicy(new ThreadPolicy.Builder().permitNetwork().build()); - loginWebView = (WebView) findViewById(R.id.webview_setup); + loginWebView = findViewById(R.id.webview_setup); loginWebView.setVisibility(View.INVISIBLE); loginWebView.getSettings().setJavaScriptEnabled(true); loginWebView.setWebViewClient(new LoginWebViewClient()); @@ -139,11 +140,11 @@ void saveTokenFromWeb(final String url) { } private void saveToken(String token) { - sharedPrefs.edit().putString("token", token).commit(); + sharedPrefs.edit().putString("token", token).apply(); Toast.makeText(this, R.string.loginsuccess, Toast.LENGTH_SHORT).show(); CookieManager cookieManager = CookieManager.getInstance(); - cookieManager.removeAllCookie(); + cookieManager.removeAllCookies(null); startActivity(new Intent(this, PutioActivity.class)); finish(); @@ -185,17 +186,22 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) { @Override public void onLoadResource(WebView view, String url) { - if (url.contains("code=")) { - String[] strings = url.split("code="); - String code = strings[1]; - + Uri uri = Uri.parse(url); + if (!uri.getHost().contains("put.io")) { + return; + } + String code = uri.getQueryParameter("code"); + if (code != null) { final String finalUrl = "https://api.put.io/v2/oauth2/access_token?client_id=" + getString(R.string.putio_client_id) + "&client_secret=" + getString(R.string.putio_api_key) + "&grant_type=authorization_code&redirect_uri=http://stevenschoen.com/callback.php&code=" + code; saveTokenFromWeb(finalUrl); - } else if (url.contains("token=")) { - saveToken(url.substring(url.indexOf("token=") + 6)); + } else { + String token = uri.getQueryParameter("token"); + if (token != null) { + saveToken(token); + } } } } diff --git a/app/src/main/java/com/stevenschoen/putionew/PutioUtils.java b/app/src/main/java/com/stevenschoen/putionew/PutioUtils.java index 85bf3c58..ba73a4f2 100644 --- a/app/src/main/java/com/stevenschoen/putionew/PutioUtils.java +++ b/app/src/main/java/com/stevenschoen/putionew/PutioUtils.java @@ -355,7 +355,7 @@ public Dialog removeTransferDialog( final long... idsToDelete) { final Dialog removeDialog = showPutioDialog(context, context.getString(R.string.removetransfertitle), R.layout.dialog_removetransfer); - Button removeRemove = (Button) removeDialog.findViewById(R.id.button_removetransfer_remove); + Button removeRemove = removeDialog.findViewById(R.id.button_removetransfer_remove); removeRemove.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -372,7 +372,7 @@ public void onClick(View v) { } }); - Button cancelRemove = (Button) removeDialog.findViewById(R.id.button_removetransfer_cancel); + Button cancelRemove = removeDialog.findViewById(R.id.button_removetransfer_cancel); cancelRemove.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/stevenschoen/putionew/files/FileDetailsFragment.kt b/app/src/main/java/com/stevenschoen/putionew/files/FileDetailsFragment.kt index ea0799b7..ef2f0d3c 100644 --- a/app/src/main/java/com/stevenschoen/putionew/files/FileDetailsFragment.kt +++ b/app/src/main/java/com/stevenschoen/putionew/files/FileDetailsFragment.kt @@ -144,7 +144,7 @@ class FileDetailsFragment : RxFragment() { lifecycle() .filter { it == FragmentEvent.DESTROY_VIEW } .first(FragmentEvent.DESTROY_VIEW) - .toCompletable() + .ignoreElement() .subscribe { Picasso.get().cancelRequest(screenshotTarget) } diff --git a/app/src/main/java/com/stevenschoen/putionew/files/FileDownloadHelper.kt b/app/src/main/java/com/stevenschoen/putionew/files/FileDownloadHelper.kt index 2df53cee..7f6267b6 100644 --- a/app/src/main/java/com/stevenschoen/putionew/files/FileDownloadHelper.kt +++ b/app/src/main/java/com/stevenschoen/putionew/files/FileDownloadHelper.kt @@ -83,7 +83,7 @@ class FileDownloadHelper(context: Context) { fun copyZipLink(vararg fileIds: Long): Completable { return getZipUrl(*fileIds) .doOnSuccess { PutioUtils.copy(appContext, "Download link", it) } - .toCompletable() + .ignoreElement() } fun getZipUrl(vararg fileIds: Long): Single { diff --git a/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersActivity.java b/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersActivity.java index 33760cdb..f6c8058c 100644 --- a/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersActivity.java +++ b/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersActivity.java @@ -38,7 +38,7 @@ protected void onCreate(Bundle savedInstanceState) { } else { setContentView(R.layout.transfersactivity); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_transfersdialog); + Toolbar toolbar = findViewById(R.id.toolbar_transfersdialog); toolbar.inflateMenu(R.menu.menu_transfersdialog); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override diff --git a/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersAdapter.java b/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersAdapter.java index 4147ecda..4dc34c95 100644 --- a/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersAdapter.java +++ b/app/src/main/java/com/stevenschoen/putionew/transfers/TransfersAdapter.java @@ -217,17 +217,17 @@ public TransferHolder(View itemView) { super(itemView); root = itemView; - textName = (TextView) itemView.findViewById(R.id.text_transfer_name); - textDown = (TextView) itemView.findViewById(R.id.text_transfer_down); - textUp = (TextView) itemView.findViewById(R.id.text_transfer_up); - textRatio = (TextView) itemView.findViewById(R.id.text_transfer_ratio); - textRemaining = (TextView) itemView.findViewById(R.id.text_transfer_remaining); - imgStatusIcon = (ImageView) itemView.findViewById(R.id.img_transfer_icon); - statusLoading = (ProgressBar) itemView.findViewById(R.id.transfer_statusLoading); - buttonView = (Button) itemView.findViewById(R.id.transfer_view_button); - - progressBar = (TransferProgressBarView) itemView.findViewById(R.id.transfer_progressbar); - textMessage = (TextView) itemView.findViewById(R.id.text_transfer_message); + textName = itemView.findViewById(R.id.text_transfer_name); + textDown = itemView.findViewById(R.id.text_transfer_down); + textUp = itemView.findViewById(R.id.text_transfer_up); + textRatio = itemView.findViewById(R.id.text_transfer_ratio); + textRemaining = itemView.findViewById(R.id.text_transfer_remaining); + imgStatusIcon = itemView.findViewById(R.id.img_transfer_icon); + statusLoading = itemView.findViewById(R.id.transfer_statusLoading); + buttonView = itemView.findViewById(R.id.transfer_view_button); + + progressBar = itemView.findViewById(R.id.transfer_progressbar); + textMessage = itemView.findViewById(R.id.text_transfer_message); downHolder = itemView.findViewById(R.id.holder_transfer_down); upHolder = itemView.findViewById(R.id.holder_transfer_up); ratioHolder = itemView.findViewById(R.id.holder_transfer_ratio); diff --git a/app/src/main/java/com/stevenschoen/putionew/tv/TvActivity.kt b/app/src/main/java/com/stevenschoen/putionew/tv/TvActivity.kt index 3e5f7a6a..db69ea2a 100644 --- a/app/src/main/java/com/stevenschoen/putionew/tv/TvActivity.kt +++ b/app/src/main/java/com/stevenschoen/putionew/tv/TvActivity.kt @@ -14,7 +14,7 @@ import java.util.* class TvActivity : FragmentActivity() { private val displayedFolders = ArrayList() - private val folders by lazy { BehaviorSubject.createDefault>(listOf(PutioFile.makeRootFolder(resources)))!! } + private val folders by lazy { BehaviorSubject.createDefault>(listOf(PutioFile.makeRootFolder(resources))) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/build.gradle b/build.gradle index 9a23db95..ba9012f9 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { maven { url 'https://maven.fabric.io/public' } } dependencies { - classpath 'com.android.tools.build:gradle:3.1.2' + classpath 'com.android.tools.build:gradle:3.1.3' classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:3.3.1'