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);
|
||||
}
|
||||
if (boxart != null) {
|
||||
(new decodeBitmapIcon()).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
|
||||
"https://cdn.thegamesdb.net/images/thumb/" + getElementValue(
|
||||
boxart).replace("original/", ""));
|
||||
decodeBitmapIcon icon = new decodeBitmapIcon(mContext.get());
|
||||
icon.setListener(new decodeBitmapIcon.decodeBitmapIconListener() {
|
||||
@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);
|
||||
|
||||
if (mPrefs.getBoolean(Config.pref_gamedetails, false)) {
|
||||
childview.get().findViewById(R.id.childview).setOnLongClickListener(
|
||||
new OnLongClickListener() {
|
||||
public boolean onLongClick(View view) {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(mContext.get());
|
||||
builder.setCancelable(true);
|
||||
builder.setTitle(mContext.get().getString(R.string.game_details, game_name));
|
||||
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();
|
||||
new AlertDialog.Builder(mContext.get()).setCancelable(true).setIcon(game_icon)
|
||||
.setTitle(mContext.get().getString(R.string.game_details, game_name))
|
||||
.setMessage(game_details).create().show();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
@ -200,6 +197,7 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
|||
|
||||
childview.get().setTag(game_name);
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeDefaults() {
|
||||
game_details = mContext.get().getString(R.string.info_unavailable);
|
||||
|
@ -292,7 +290,14 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
|||
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
|
||||
protected Bitmap doInBackground(String... params) {
|
||||
try {
|
||||
|
@ -352,17 +357,18 @@ public class XMLParser extends AsyncTask<String, Integer, String> {
|
|||
|
||||
@Override
|
||||
protected void onPostExecute(Bitmap gameImage) {
|
||||
if (gameImage != null) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
((ImageView) childview.get().findViewById(R.id.item_icon)).setImageTintList(null);
|
||||
super.onPostExecute(gameImage);
|
||||
if (listener != 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