Merge pull request #1346 from reicast/lk/abandoned
Android: Update XMLParser for API 26 standards
This commit is contained in:
commit
52788ea9fa
|
@ -149,9 +149,29 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
boxart = (Element) images.getElementsByTagName("boxart").item(0);
|
boxart = (Element) images.getElementsByTagName("boxart").item(0);
|
||||||
}
|
}
|
||||||
if (boxart != null) {
|
if (boxart != null) {
|
||||||
(new decodeBitmapIcon()).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
|
decodeBitmapIcon icon = new decodeBitmapIcon(mContext.get());
|
||||||
"https://cdn.thegamesdb.net/images/thumb/" + getElementValue(
|
icon.setListener(new decodeBitmapIcon.decodeBitmapIconListener() {
|
||||||
boxart).replace("original/", ""));
|
@Override
|
||||||
|
public void onDecodeBitmapIconFinished(Bitmap gameImage) {
|
||||||
|
if (childview.get() != null && gameImage != null) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
((ImageView) childview.get().findViewById(
|
||||||
|
R.id.item_icon)).setImageTintList(null);
|
||||||
|
}
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
||||||
|
game_icon = new BitmapDrawable(
|
||||||
|
mContext.get().getResources(), gameImage);
|
||||||
|
} else {
|
||||||
|
game_icon = new BitmapDrawable(gameImage);
|
||||||
|
}
|
||||||
|
((ImageView) childview.get().findViewById(
|
||||||
|
R.id.item_icon)).setImageDrawable(game_icon);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
icon.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
|
||||||
|
"https://cdn.thegamesdb.net/images/thumb/"
|
||||||
|
+ getElementValue(boxart).replace("original/", ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,39 +180,16 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (childview.get() != null)
|
if (childview.get() != null) {
|
||||||
((TextView) childview.get().findViewById(R.id.item_name)).setText(game_name);
|
((TextView) childview.get().findViewById(R.id.item_name)).setText(game_name);
|
||||||
|
|
||||||
if (mPrefs.getBoolean(Config.pref_gamedetails, false)) {
|
if (mPrefs.getBoolean(Config.pref_gamedetails, false)) {
|
||||||
childview.get().findViewById(R.id.childview).setOnLongClickListener(
|
childview.get().findViewById(R.id.childview).setOnLongClickListener(
|
||||||
new OnLongClickListener() {
|
new OnLongClickListener() {
|
||||||
public boolean onLongClick(View view) {
|
public boolean onLongClick(View view) {
|
||||||
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext.get());
|
new AlertDialog.Builder(mContext.get()).setCancelable(true).setIcon(game_icon)
|
||||||
builder.setCancelable(true);
|
.setTitle(mContext.get().getString(R.string.game_details, game_name))
|
||||||
builder.setTitle(mContext.get().getString(R.string.game_details, game_name));
|
.setMessage(game_details).create().show();
|
||||||
builder.setMessage(game_details);
|
|
||||||
builder.setIcon(game_icon);
|
|
||||||
builder.setNegativeButton("Close",
|
|
||||||
new DialogInterface.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
dialog.dismiss();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
builder.setPositiveButton("Launch",
|
|
||||||
new DialogInterface.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
|
||||||
dialog.dismiss();
|
|
||||||
mCallback.onGameSelected(game != null
|
|
||||||
? Uri.fromFile(game) : Uri.EMPTY);
|
|
||||||
try {
|
|
||||||
((Vibrator) mContext.get().getSystemService(
|
|
||||||
Context.VIBRATOR_SERVICE)).vibrate(250);
|
|
||||||
} catch (Exception e) {
|
|
||||||
// Vibration unavailable
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
builder.create().show();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -200,6 +197,7 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
|
|
||||||
childview.get().setTag(game_name);
|
childview.get().setTag(game_name);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void initializeDefaults() {
|
private void initializeDefaults() {
|
||||||
game_details = mContext.get().getString(R.string.info_unavailable);
|
game_details = mContext.get().getString(R.string.info_unavailable);
|
||||||
|
@ -292,7 +290,14 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private class decodeBitmapIcon extends AsyncTask<String, Integer, Bitmap> {
|
private static class decodeBitmapIcon extends AsyncTask<String, Integer, Bitmap> {
|
||||||
|
private WeakReference<Context> mContext;
|
||||||
|
private decodeBitmapIconListener listener;
|
||||||
|
|
||||||
|
decodeBitmapIcon(Context reference) {
|
||||||
|
this.mContext = new WeakReference<>(reference);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Bitmap doInBackground(String... params) {
|
protected Bitmap doInBackground(String... params) {
|
||||||
try {
|
try {
|
||||||
|
@ -352,17 +357,18 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(Bitmap gameImage) {
|
protected void onPostExecute(Bitmap gameImage) {
|
||||||
if (gameImage != null) {
|
super.onPostExecute(gameImage);
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (listener != null) {
|
||||||
((ImageView) childview.get().findViewById(R.id.item_icon)).setImageTintList(null);
|
listener.onDecodeBitmapIconFinished(gameImage);
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
|
|
||||||
game_icon = new BitmapDrawable(mContext.get().getResources(), gameImage);
|
|
||||||
} else {
|
|
||||||
game_icon = new BitmapDrawable(gameImage);
|
|
||||||
}
|
|
||||||
((ImageView) childview.get().findViewById(R.id.item_icon)).setImageDrawable(game_icon);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setListener(decodeBitmapIconListener listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface decodeBitmapIconListener {
|
||||||
|
void onDecodeBitmapIconFinished(Bitmap gameImage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue