Skip to content

Commit

Permalink
Merge pull request #3 from hemker/dev
Browse files Browse the repository at this point in the history
Adding new APKMirror features
  • Loading branch information
Dennis Hemker committed Mar 3, 2019
2 parents 84fa941 + 419ce41 commit a80f70a
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -7,7 +7,7 @@ but don't expect weekly updates.
# Roadmap
* [x] Releasing APKUpdater as a new, seperate version APKGrabber to provide fixed APKMirror API break.
* [ ] Updating the build system, as it's full of deprecation warnings.
* [ ] Adding enhanced handling for APKMirror.
* [x] Adding enhanced handling for APKMirror.

# License
Copyright © 2017 Rumboalla.
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle
Expand Up @@ -11,7 +11,7 @@ android {
minSdkVersion 9
targetSdkVersion 25
versionCode 29
versionName "1.0.0"
versionName "1.1.0"
testApplicationId "de.apkgrabber.test"
testInstrumentationRunner "de.apkgrabber.test.CucumberInstrumentation"
multiDexEnabled true
Expand Down
20 changes: 19 additions & 1 deletion app/src/main/java/de/apkgrabber/adapter/UpdaterViewHolder.kt
Expand Up @@ -92,7 +92,11 @@ open class UpdaterViewHolder(view: View)
adapter.addButton(ActionButton(
text,
u.installStatus.status == InstallStatus.STATUS_INSTALLING,
{ if (text == mContext?.getString(R.string.action_play)) launchInstall(u) else launchBrowser(u) }
{
if (text == mContext?.getString(R.string.action_play)) launchInstall(u)
else if (text == mContext?.getString(R.string.action_apkmirror)) launchApkMirror(u)
else launchBrowser(u)
}
))
}

Expand Down Expand Up @@ -157,6 +161,20 @@ open class UpdaterViewHolder(view: View)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

private fun launchApkMirror(
u : Update
) {
thread {
val downloadUrl = APKMirrorParser.parseDownloadUrlFromWebsite(u.url)
DownloadUtil.downloadFileDM(mContext,
"https://www.apkmirror.com" + downloadUrl,
"",
u.pname + "_" + u.version)
}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

private fun getActionString(
u : Update
) : String {
Expand Down
Expand Up @@ -162,7 +162,7 @@ private void parseResponse(
// Add the update
Update u = new Update(
app,
DownloadUrl + data.getRelease().getLink(),
getImmediateDownloadUrl(apk),
data.getRelease().getVersion(),
isBeta,
null,
Expand All @@ -186,6 +186,12 @@ private void parseResponse(

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

private String getImmediateDownloadUrl(AppExistsResponseApk apk) {
return DownloadUrl + apk.getLink() + "download";
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

private InstalledApp getInstalledApp(
String pname
) {
Expand Down
Expand Up @@ -93,7 +93,7 @@ public boolean useAPKMirror(
public boolean useGooglePlay(
) {
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(mContext);
return sharedPref.getBoolean(mContext.getString(R.string.preferences_general_use_play_key), true);
return sharedPref.getBoolean(mContext.getString(R.string.preferences_general_use_play_key), false);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down
29 changes: 29 additions & 0 deletions app/src/main/java/de/apkgrabber/util/APKMirrorParser.java
@@ -0,0 +1,29 @@
package de.apkgrabber.util;


import java.util.regex.Matcher;
import java.util.regex.Pattern;

import okhttp3.OkHttpClient;
import okhttp3.Request;

public class APKMirrorParser {
public static String parseDownloadUrlFromWebsite(String url) {
String downloadUrl = "";
try {
OkHttpClient client = new OkHttpClient();
Request r = new Request.Builder().url(url).build();
String response = client.newCall(r).execute().body().string();

String baseUrl = "/wp-content/themes/APKMirror/";
Pattern pattern = Pattern.compile(baseUrl + ".*here");
Matcher match = pattern.matcher(response);

if(match.find()) {
downloadUrl = response.substring(match.start(), match.end() - 6);
}
} catch (Exception e) {
}
return downloadUrl;
}
}
4 changes: 2 additions & 2 deletions app/src/main/res/xml/preferences.xml
Expand Up @@ -111,7 +111,7 @@
android:key="@string/preferences_general_use_play_key"
android:summary="@string/preferences_general_use_play_summary"
android:title="@string/preferences_general_use_play_title"
android:defaultValue="true"
android:defaultValue="false"
/>
<CheckBoxPreference
android:key="@string/preferences_general_use_apkmirror_key"
Expand Down Expand Up @@ -156,4 +156,4 @@
android:defaultValue="false"
/>
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>

0 comments on commit a80f70a

Please sign in to comment.