I'm looking to create a social media app and I need to find a solid PHP framework that provides an API for my app to call and that I can build on top of. The main point that I am looking for is something that is stable, scalable, fast, good community provides JSON responses and has authentication built in.

I would also like if possible to have some social media functionality pre built so I can work on just the bespoke bits of functionality that I need.

I have taken a look at elgg but would like to know if anyone has any other recommendations.

Also please let me know if this is not the best place for this question and where it should be.

I am trying to implement google Places APIs (Places Autocomplete) by creating an intent through intentBuilder. My app is successfully getting an intent with a button click but unable to search a place.

On overriding onActivityResult, it's getting resultCode = 2 instead of RESULT_SUCCESS, RESULT_ERROR or RESULT_CANCELLED and gets back to MainActivity.

I took reference from https://developers.google.com/places/android-api/autocomplete and added a dependency

compile 'com.google.android.gms:play-services-places:9.2.0' 

Here is my code

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == PLACE_AUTOCOMPLETE_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            Place place = PlaceAutocomplete.getPlace(this, data);
            Log.i(TAG, "Place: " + place.getAddress());
        } else if (resultCode == PlaceAutocomplete.RESULT_ERROR) {
            Status status = PlaceAutocomplete.getStatus(this, data);
            // TODO: Handle the error.
            Log.i(TAG, status.getStatusMessage());

        } else if (resultCode == RESULT_CANCELED) {
            Log.i("message", "the user cancelled the operation" );            }
    }
}

I need some assistance, please help.

After receiving my Lumia 640 (8gb) I installed some apps, removed others. Since then, I haven't explicitly used any more space: no pictures/videos, no downloaded files, no books, etc. A while back I noticed my free space was shrinking so took note of the fact I had 800mb free total, with "other" mostly empty (I think). Now I have 50mb free (100mb after deleting temporary files), "other" is using 500mb, windows continually complains about not enough space, and some apps [email] also complain and refuse to work [email, pandora].

  1. What is the "other" category? This answer says it is per-application data, but in the Files app per-application data shows up under the "apps+games" category (each app has install+data size), not the "other" category. I was under the impression each app stores data in separate containers associate with the app, not the "other category".

  2. "System" category occupies 5.2gb. Is this normal?

  3. How can I clean up "other" files? They don't show up when connected to a computer, nor can I manage them from the Files app.

We have upgraded the environment of a web application from running on Java 7 to running on Java 8 (64-bit arch, Heap size about 2 GB, PermGen size=256 MB, no constraints on metaspace size). After a while, we started getting the following error:

java.lang.OutOfMemoryError: Compressed class space

which means that the space needed for UseCompressedClassPointers exceeded CompressedClassSpaceSize. At that moment VisualVM showed a 2 GB metaspace size.

Now with the VisualVM tool, we can see the Metaspace size is constatnly increasing with every request about 3 MB, however the heap does not seem to do so. It heap has a saw zigzag shape going back to the same low point after GC.

The application depends on webservices-rt-1.4 as a JAXB implementation. The application uses marshalling, unmarshalling. The class generation from XSD is done with maven-jaxb2-plugin-0.13.1.

I can tell that the application is leaking Metadata only when using a JAXB operation, but I couldn't prove it with VisualVM.

Is there a way to analyze the metaspace objects? Why do I have a leak in metaspace but not in heap? aren't they related?

I'm very new to RxJava, android and Java at all... I am trying to create an observable which emits a synchronized List. Where I am wrong?

public class CurrentLocationHolder {

    private List<LocationPoint> locationBuffer = Collections.synchronizedList(new ArrayList<>());

    public final PublishSubject<List<LocationPoint>> locationBufferChanged = PublishSubject.create();

    public Observable<List<LocationPoint>> observeLocationBufferChanged(boolean emitCurrentValue) {
        return emitCurrentValue ? locationBufferChanged.startWith(locationPointsBuffer) : locationBufferChanged;
    }

    public void setLocation(LocationPoint point) {

        locationBuffer.add(point);

        if (locationBuffer.size() >= 10) {
            locationBufferChanged.onNext(this.locationBuffer);
        }

        locationBufferChanged.onCompleted();

        locationBuffer.clear();
    }
}

And here is my subscriber #1 object:

public class DatabaseManager {
    private Subscription locationBufferSubscription;
    private static DatabaseManager instance;

    public static void InitInstance() {
        if (instance == null) {
            instance = new DatabaseManager();

        instance.changeLocationBufferSubscription = 
            CurrentLocationHolder.getInstance().observeLocationBufferChanged()
                .subscribe(locArray -> {
                    ActiveAndroid.beginTransaction();
                    try {
                        for (int i = 0; i < locArray.size(); i++) {
                            locArray.get(i).save();
                        }
                        ActiveAndroid.setTransactionSuccessful();
                    } finally {
                        ActiveAndroid.endTransaction();
                    }
            });
        }
    }
}

So, if I would create an another subscriber, forexample HttpManager, which will listen to buffer changes too, will my buffer be synchronous for all of the listeners? And will my List be cleared after all of the listeners process all 10 LocationPoints?

I am not getting app launching automatically when running in android studio after successfull building and log-cat messages also not displaying 1) Developer options are enabled 2) USB debugging is enabled 3) tested it on both Ubuntu 15.04 and window 8 4) Other handsets (Motorola,Xiaoping) are showing logs in lolcat. 5) tested with different apps but problem only arises on Note 3 Lite. 6) Android Studio version is 2.1.2 7) Note 3 Lite running on cool-pad official android 5.1

I'm working with webService, when login process is finished get an authenticate key from server and in other request i'm getting server time there is my JSON structure how can convert this string to date formatter?

{
  "ErrorCode": 0,
  "ErrorMessage": "",
  "Result": 0,
  "Long": 1477721881,
  "LongMS": 1477721881610,
  "Net": "/Date(1477721881610+0330)/",
  "Date": "2016.10.29-09:48"
}

i want to save this time because authenticate key valid for 24 hour. there is my code for converting string but my result not correct :

  let sysdate = json["Date"] as? String
         let formatter = DateFormatter()
         formatter.dateFormat = "yyyy.mm.dd-hh:mm"
         let dateString = formatter.date(from: sysdate!)

this is my result : date format :Optional(2016-01-08 06:59:16 +0000)

I am working on a CoreData stack which using sqlite as the underlying store. My schema looks something like this:

Data Model

An image can have multiple tags and a tag can belong to multiple images. My use-case is to be able to search images that match a particular tag name. The name attribute of tag is indexed.

Two approaches come to my mind:

  1. Get objectIDs all SMTags containing the search string and then querying the SMImages containing those objectIDs.

         let fetchRequest = NSFetchRequest<NSManagedObjectID>(entityName: "SMTag")
        fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", text)
        fetchRequest.resultType =  NSFetchRequestResultType.managedObjectIDResultType
        var tagIDs: Array<NSManagedObjectID>? = nil
    
         do {
         tagIDs = try DataStoreController.sharedController.managedObjectContext!.fetch(fetchRequest)
         } catch {
         print("Error in retreiving tags with names = \(error)")
         }
    
    
    
         if tagIDs != nil {
         predicate = NSPredicate(format: "tags IN %@", NSSet(array: tagIDs!))
         }
    
    
         let fetchRequest2 = NSFetchRequest<NSManagedObject>(entityName: "SMImage")
         let timestampSortDescriptor = NSSortDescriptor(key: "timestamp", ascending: false)
         fetchRequest2.sortDescriptors = [timestampSortDescriptor]
         fetchRequest2.predicate = predicate
    
         var images: Array<SMImage>? = nil
    
         do {
         images = try DataStoreController.sharedController.managedObjectContext!.fetch(fetchRequest2)
         } catch {
         print("Error")
         }
    

This approach does return tagIDs but returns no images.

  1. The other approach is to directly search on SMTag's name of images using the predicate:

        predicate = NSPredicate(format: "ALL tags.name == %@", text)
    

If you know of any better approach please do suggest. Any help is appreciated.

I have the following code:

class A {
    var value = 1
}

struct B {
    private var _a: A
    var a: A {
        get {
            print("getter")
            return _a
        }
    }

    init(a: A) {
        _a = a
    }
}

let b = B(a: A())

(b.a).value = 10
// print "getter" once

b.a.value = 10
// print "getter" twice

If I simply read a.value, getter is called once. The question is what difference is between (b.a).value = and b.a.value =? And why does Swift behave like this?

The same happens if B is class instead of struct.

I am encrypting string in iOS using AESCrypt and in PhP i am checking this using online encryption tool for AES i.e.http://aesencryption.net/#Java-aes-encryption-example

From iOS i am getting : d0M2rpGpS8fTePS+WVMy0Q== and from php online encryption i am getting :3qacseL9uK4sg2lODm9Biw==

for same string.

Any help would be appreciated.

Thanks

Basically, I have this html:

<html>
<head>
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1,minimum-scale=1, user-scalable=no">
</head>
<body style='background:red;margin:0;'>
    <div style='background:white;height:100%;position:absolute;width:100%;'>
        <input type='text' value='click me' style='bottom:0;position:absolute;'>
    </div>
</body>
</html>

(not my actual code, but simplified enough to reproduce the issue).

And, whenever I place the focus in safari for ios, the soft keyboard is open and the input is pushed up some extra pixels leaving an empty spot under it with the color of the body. I tried a lot of css properties and played with scroll of elements in js but couldn't get the view to not be scrolled that far.

current behaviour

Do you have any idea of what can I do to fix that? (other than ignore the issue or change the placement of the input, since both are requested to be like that in the proyect)

This is what I'm trying to get:

expected

Thanks

so im working with uploading string paths into imageViews, and it works fine, but my IOS app cannot use my string paths, so i need to switch over to base 64 strings. How do I convert my string path into a base 64 image and upload that into an imageview without it having out of memory error?

Below is what I currently have on myActivityResult().

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        addImageImageView.setVisibility(View.GONE);
        if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK && data != null) {
            //First we gotta make sure to add the images to
            ArrayList<Image> imagesFromGallery = data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES);//Image is a personal object I made.

            for (int i = 0; i < imagesFromGallery.size(); i++) {
                images.add(imagesFromGallery.get(i).path);
                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                lp.setMargins(20, 20, 0, 0);//5dp = 20 pixels
                lp.height = 720;//180dp = 720pixels
                lp.width = 1400;//330dp = 1320 pixels.
                ImageView newImageView = new ImageView(this);
                newImageView.setLayoutParams(lp);
                Glide.with(this).load(imagesFromGallery.get(i)).centerCrop().into(newImageView);
                imageLinearLayout.addView(newImageView, 0);
            }
    }

I am moving from GCC to clang with NDK r13. I have a library that makes use of void pointer arithmetic, that would be very difficult to change.

    void * bar;
    void * foo;
    foo = bar + 1;

Gives the following error with clang, but not GCC:

error: arithmetic on a pointer to void foo = bar + 1;

Is there a way to enable the extension to allow void pointer arithmetic on this platform with clang, the same as GCC allows?

I'm researching how Android smartphone users manage notifications.

How can I build an app that automatically reads a list of the installed apps that the user does NOT allow to show notifications? In Lollipop, that means the user has unchecked "Show notifications" under Settings > Apps > [app name]. In Marshmallow, that means the user has toggled on "Block all" for that app.

Additionally, for Marshmallow users, I'd like to know if the user has toggled on "Allow peeking."

Finally, would the user have to grant any permissions to my app in order to read these settings?

I have a project that I am trying to implement Continuous Integration using Visual Studio Team Services. I have a build definition for the Android Project but the build is failing. The app builds and runs in visual studio no problem.

The error I get is this:

Error : java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0

I have installed the latest jdk and I have deleted the build tools for api 24. and the same result it builds in Visual Studio but not when the CI build occurs.

Does anyone have any idea as to a solution? Any feedback would be great

Thanks

Is there possibility to start One activity, then from One start activity Two and all this time show some image, not changing or interrupting it. If I start to show some full screen dialog from activity One with some picture and then I launch activity Two, dialog disappears and I see activity Two where I can show the same full screen dialog (or something else), but I want to launch something in activity One (or earlier) to be shown all time without interrupting between changing of One to Two.

--start activity One--works One--stops One--start activity Two--works Two--

--all this time on the screen a user sees one image without interrupting---

My project is being in test phase, I've tried it OK on all emulators, debugged OK on one physical device but failed for another physical device with the following message printed in the output window:

10-29 09:43:18.376 W/Mono    (16624): The following assembly referenced from Java.Interop.dll could not be loaded:
10-29 09:43:18.376 W/Mono    (16624):      Assembly:   System.Runtime    (assemblyref_index=1)
10-29 09:43:18.376 W/Mono    (16624):      Version:    4.0.0.0
10-29 09:43:18.376 W/Mono    (16624):      Public Key: b03f5f7f11d50a3a
10-29 09:43:18.376 W/Mono    (16624): The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/).
10-29 09:43:18.376 D/Mono    (16624): Failed to load assembly Java.Interop[0x6c0a0040]
10-29 09:43:18.376 W/Mono    (16624): Could not load file or assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
10-29 09:43:18.376 E/mono-rt (16624): Stacktrace:
10-29 09:43:18.376 E/mono-rt (16624): 
10-29 09:43:18.376 E/mono-rt (16624): 
10-29 09:43:18.376 E/mono-rt (16624): Attempting native Android stacktrace:
10-29 09:43:18.376 E/mono-rt (16624): 
10-29 09:43:18.385 E/mono-rt (16624):  at ???+0 [0x63ee7667]
10-29 09:43:18.386 E/mono-rt (16624):  at mono_class_get_field_from_name+31 [0x63ee773f]
10-29 09:43:18.387 E/mono-rt (16624):  at ???+31 [0x7355c91b]
10-29 09:43:18.387 E/mono-rt (16624):  at ???+31 [0x7355cb5c]
10-29 09:43:18.387 E/mono-rt (16624):  at Java_mono_android_Runtime_init+2099 [0x7355efbb]
10-29 09:43:18.387 E/mono-rt (16624):  at ???+2099 [0x64783962]
10-29 09:43:18.388 E/mono-rt (16624): 
10-29 09:43:18.388 E/mono-rt (16624): =================================================================
10-29 09:43:18.388 E/mono-rt (16624): Got a SIGSEGV while executing native code. This usually indicates
10-29 09:43:18.388 E/mono-rt (16624): a fatal error in the mono runtime or one of the native libraries 
10-29 09:43:18.388 E/mono-rt (16624): used by your application.
10-29 09:43:18.388 E/mono-rt (16624): =================================================================    

The issue is surely not in my code (the execution does not have any chance to jump in anywhere in my code and the code works fine in another physical device running Kitkat 4.4). The device I'm testing on runs Lollipop 5.0 (so the API should surely support what Kitkat supports).

I've not tried creating a signed APK and installing that final build on the device but debugging should be done first. I'm also not sure if this relates to some problem of failed ADB interface driver? (although the device seems to be connected OK and its name shows up in Visual Studio).

I've tried Googling around for this issue but found nothing (with just a few result). According to the message, looks like this System.Runtime should be referenced? (strangely that it's not referenced in my project but it still runs fine in all emulators and one physical device, also the building is always successful). I've tried finding that assembly to add as reference in my project but also not found any suitable (from the Reference manager window).

I hope someone here could figure out what's possibly wrong to help me out. It's seriously important that the device I'm testing on may be choosen as the running device for our clients. Thank you for your help!

I am currently in the process of connecting the activities of my project together through the Navigation Drawer, however I plan on having the Navigation Drawer accessible from both activities.

Currently, here's the class file (minus imports) being used to handle the Navigation Drawer. I should mention that the content/activity layouts for Navigation are not being used; only the Navigation Drawer.

public class Navigation extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_camera) {
        Toast.makeText(this, "Calendar", Toast.LENGTH_SHORT).show();
        startActivity(new Intent(Navigation.this, Calendar.class));
        finish();
        // Handle the camera action
    } else if (id == R.id.nav_gallery) {

    } else if (id == R.id.nav_slideshow) {

    } else if (id == R.id.nav_manage) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
} //closing bracket cut off by SO

This class seems to work as intended, though the issues comes with the second class file of the activity that I am trying to start.

public class Calendar extends Navigation implements NavigationView.OnNavigationItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calendar);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_camera) {
        Toast.makeText(this, "Calendar Open!", Toast.LENGTH_SHORT).show();
        // Handle the camera action
    } else if (id == R.id.nav_gallery) {

    } else if (id == R.id.nav_slideshow) {

    } else if (id == R.id.nav_manage) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

}

After running the application, the following error results-

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.teamcirelios.deepstoneemerald, PID: 26082
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.teamcirelios.deepstoneemerald/com.teamcirelios.deepstoneemerald.Calendar}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.DrawerLayout.addDrawerListener(android.support.v4.widget.DrawerLayout$DrawerListener)' on a null object reference
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
                  at android.app.ActivityThread.access$1100(ActivityThread.java:221)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:158)
                  at android.app.ActivityThread.main(ActivityThread.java:7225)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.widget.DrawerLayout.addDrawerListener(android.support.v4.widget.DrawerLayout$DrawerListener)' on a null object reference
                  at com.teamcirelios.deepstoneemerald.Calendar.onCreate(Calendar.java:57)
                  at android.app.Activity.performCreate(Activity.java:6876)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                  at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:158) 
                  at android.app.ActivityThread.main(ActivityThread.java:7225) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Also, both activity layouts have these two xml attributes.

    <include
    layout="@layout/app_bar_navigation"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_navigation"
    app:menu="@menu/activity_navigation_drawer" />

Can someone explain what's causing the problem and offer a solution?

The title is probably poorly worded, but essentially my friend's Galaxy S6 keeps restarting after being started up for about 30 seconds due to the error: System UI has stopped working

I'm trying to recover all of the pictures contained within the directory /mnt/sdcard/DCIM/ but the phone restarts after I copy around 80 of them using adb pull /mnt/sdcard/DCIM/. How can I copy 80 at a time and then sleep for say 20 seconds, and pull the next 80?

I need a book template for android ebook app, which can develop using python. please help me. thanks

In my OnResume() method, I want to check if it is called when reopen the app or when switching to this activity after stopping another activity. Is it possible?