/*
* Copyright 2013 Niek Haarman
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.marshalchen.common.demoofui.listviewanimations;
import java.util.ArrayList;
import android.view.Window;
import com.marshalchen.common.demoofui.R;
import com.marshalchen.common.demoofui.listviewanimations.appearanceexamples.AppearanceExamplesActivity;
import com.marshalchen.common.demoofui.listviewanimations.itemmanipulationexamples.ItemManipulationsExamplesActivity;
import com.marshalchen.common.ui.HomeasUpActionbarActivity;
import org.json.JSONException;
import org.json.JSONObject;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.content.ServiceConnection;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
public class ListAnimationActivity extends Activity {
@SuppressLint("InlinedApi")
@Override
protected void onCreate(final Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
}
super.onCreate(savedInstanceState);
setContentView(R.layout.list_anim_activity_main);
// bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE);
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.list_anim_menu_main, menu);
menu.findItem(R.id.menu_main_donate).setVisible(mService != null);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_main_github:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://nhaarman.github.io/ListViewAnimations?ref=app"));
startActivity(intent);
return true;
case R.id.menu_main_beer:
buy("beer");
return true;
case R.id.menu_main_beer2:
buy("beer2");
return true;
case R.id.menu_main_beer3:
buy("beer3");
return true;
case R.id.menu_main_beer4:
buy("beer4");
return true;
}
return super.onOptionsItemSelected(item);
}
public void onGoogleCardsExampleClicked(final View view) {
Intent intent = new Intent(this, GoogleCardsActivity.class);
startActivity(intent);
}
public void onGridViewExampleClicked(final View view) {
Intent intent = new Intent(this, GridViewActivity.class);
startActivity(intent);
}
public void onAppearanceClicked(final View view) {
Intent intent = new Intent(this, AppearanceExamplesActivity.class);
startActivity(intent);
}
public void onItemManipulationClicked(final View view) {
Intent intent = new Intent(this, ItemManipulationsExamplesActivity.class);
startActivity(intent);
}
private IInAppBillingService mService;
private final ServiceConnection mServiceConn = new ServiceConnection() {
@Override
public void onServiceDisconnected(final ComponentName name) {
mService = null;
// supportInvalidateOptionsMenu();
}
@Override
public void onServiceConnected(final ComponentName name, final IBinder service) {
mService = IInAppBillingService.Stub.asInterface(service);
// supportInvalidateOptionsMenu();
// new Thread() {
//
// @Override
// public void run() {
// try {
// Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);
//
// int response = ownedItems.getInt("RESPONSE_CODE");
// if (response == 0) {
// ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
//
// if (purchaseDataList != null) {
// for (String purchaseData : purchaseDataList) {
// JSONObject json = new JSONObject(purchaseData);
// mService.consumePurchase(3, getPackageName(), json.getString("purchaseToken"));
// }
// }
// }
// } catch (RemoteException e) {
// e.printStackTrace();
// } catch (JSONException e) {
// e.printStackTrace();
// }
// }
// }.start();
}
};
@Override
public void onDestroy() {
super.onDestroy();
// if (mServiceConn != null) {
// unbindService(mServiceConn);
// }
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Thank you!", Toast.LENGTH_LONG).show();
new Thread() {
@Override
public void run() {
try {
JSONObject json = new JSONObject(data.getStringExtra("INAPP_PURCHASE_DATA"));
mService.consumePurchase(3, getPackageName(), json.getString("purchaseToken"));
} catch (JSONException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}.start();
}
}
private void buy(final String sku) {
try {
Bundle buyIntentBundle = mService.getBuyIntent(3, getPackageName(), sku, "inapp", "bGoa+V7g/ysDXvKwqq+JTFn4uQZbPiQJo4pf9RzJ");
PendingIntent pendingIntent = buyIntentBundle.getParcelable("BUY_INTENT");
if (pendingIntent != null) {
startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), 0, 0, 0);
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (SendIntentException e) {
e.printStackTrace();
}
}
}