MCPcopy Index your code
hub / github.com/ammarptn/GDrive-Rest-Android

github.com/ammarptn/GDrive-Rest-Android @1.4.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.4.3 ↗ · + Follow
75 symbols 206 edges 8 files 18 documented · 24% updated 6y ago1.4.3 · 2019-10-24★ 601 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GDrive-Rest-Android

This is the library for integrate Google Drive Rest into your Android app

Installation

Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Step 2. Add the dependency

dependencies {
        // Google Drive Rest library
        implementation 'com.github.ammarptn:GDrive-Rest-Android:1.4.3'
        // For Google login
        implementation 'com.google.android.gms:play-services-auth:17.0.0'
}

Step 3. Add OAuth 2.0 client IDs at Google API console

Step 4. Enable Google Drive API in Google API console

Step 5. Add "../auth/drive" in Scopes for Google APIs

Optional Step 6. Add "../auth/drive.appdata" in Scopes if you want to access application data folder

Usage

Initialization




    GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(getApplicationContext());
    ...

    //if you want to use your common space of G drive
    mDriveServiceHelper = new DriveServiceHelper(getGoogleDriveService(getApplicationContext(), account, "your_app_name_here"));


    //if you want to use your appData space of G drive 
    mDriveServiceHelper = new AppDataDriveServiceHelper(getGoogleAppDataDriveService(getApplicationContext(), account, "your_app_name_here"));

The rest of authentication's example locate at https://github.com/ammarptn/GDrive-Rest-Android/blob/master/app/src/main/java/com/ammarptn/gdriverest/MainActivity.java

Create Folder

        mDriveServiceHelper.createFolder("folderName", null)
                        .addOnSuccessListener(new OnSuccessListener<GoogleDriveFileHolder>() {
                            @Override
                            public void onSuccess(GoogleDriveFileHolder googleDriveFileHolder) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolder));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());

                            }
                        });

Create Text File

mDriveServiceHelper.createTextFile("textFileName.txt", "some text", null)
                        .addOnSuccessListener(new OnSuccessListener<GoogleDriveFileHolder>() {
                            @Override
                            public void onSuccess(GoogleDriveFileHolder googleDriveFileHolder) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolder));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());
                            }
                        });

Create Folder If Not Exist

mDriveServiceHelper.createFolderIfNotExist("folderName", null)
                        .addOnSuccessListener(new OnSuccessListener<GoogleDriveFileHolder>() {
                            @Override
                            public void onSuccess(GoogleDriveFileHolder googleDriveFileHolder) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolder));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());

                            }
                        });

Create Text File If Not Exist

mDriveServiceHelper.createTextFileIfNotExist("textFileName.txt","content", null)
                        .addOnSuccessListener(new OnSuccessListener<GoogleDriveFileHolder>() {
                            @Override
                            public void onSuccess(GoogleDriveFileHolder googleDriveFileHolder) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolder));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());

                            }
                        });
  • the search result will return only file that you create from this app unless app already reviewed.

Search File

mDriveServiceHelper.searchFile("textFileName.txt", "text/plain")
                        .addOnSuccessListener(new OnSuccessListener<List<GoogleDriveFileHolder>>() {
                            @Override
                            public void onSuccess(List<GoogleDriveFileHolder> googleDriveFileHolders) {

                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolders));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());
                            }
                        });

Search Folder

mDriveServiceHelper.searchFolder("folderName")
                        .addOnSuccessListener(new OnSuccessListener<List<GoogleDriveFileHolder>>() {
                            @Override
                            public void onSuccess(List<GoogleDriveFileHolder> googleDriveFileHolders) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolders));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());
                            }
                        });

List File/Folder in Folder

list File/Folder in Root of G-Drive, pass null as parameter

mDriveServiceHelper.queryFiles(null)
                        .addOnSuccessListener(new OnSuccessListener<List<GoogleDriveFileHolder>>() {
                            @Override
                            public void onSuccess(List<GoogleDriveFileHolder> googleDriveFileHolders) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolders));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {

                            }
                        });

list File/Folder in specific folder, pass folder id as parameter

mDriveServiceHelper.queryFiles("g-drive-folder-id-here")
                        .addOnSuccessListener(new OnSuccessListener<List<GoogleDriveFileHolder>>() {
                            @Override
                            public void onSuccess(List<GoogleDriveFileHolder> googleDriveFileHolders) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolders));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {

                            }
                        });

Upload File

mDriveServiceHelper.uploadFile(new java.io.File(getApplicationContext().getFilesDir(), "fileName.txt"), "text/plain", null)
                        .addOnSuccessListener(new OnSuccessListener<GoogleDriveFileHolder>() {
                            @Override
                            public void onSuccess(GoogleDriveFileHolder googleDriveFileHolder) {
                                Gson gson = new Gson();
                                Log.d(TAG, "onSuccess: " + gson.toJson(googleDriveFileHolder));
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {
                                Log.d(TAG, "onFailure: " + e.getMessage());
                            }
                        });

Download File

 mDriveServiceHelper.downloadFile(new java.io.File(getApplicationContext().getFilesDir(), "filename.txt"), "google_drive_file_id_here")
                        .addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {

                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception e) {

                            }
                        });

Delete File

mDriveServiceHelper.deleteFolderFile("GoogleFileId").addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void aVoid) {

                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {

                    }
                });

MimeType

    public static String TYPE_AUDIO = "application/vnd.google-apps.audio";
    public static String TYPE_GOOGLE_DOCS = "application/vnd.google-apps.document";
    public static String TYPE_GOOGLE_DRAWING = "application/vnd.google-apps.drawing";
    public static String TYPE_GOOGLE_DRIVE_FILE = "application/vnd.google-apps.file";
    public static String TYPE_GOOGLE_DRIVE_FOLDER = DriveFolder.MIME_TYPE;
    public static String TYPE_GOOGLE_FORMS = "application/vnd.google-apps.form";
    public static String TYPE_GOOGLE_FUSION_TABLES = "application/vnd.google-apps.fusiontable";
    public static String TYPE_GOOGLE_MY_MAPS = "application/vnd.google-apps.map";
    public static String TYPE_PHOTO = "application/vnd.google-apps.photo";
    public static String TYPE_GOOGLE_SLIDES = "application/vnd.google-apps.presentation";
    public static String TYPE_GOOGLE_APPS_SCRIPTS = "application/vnd.google-apps.script";
    public static String TYPE_GOOGLE_SITES = "application/vnd.google-apps.site";
    public static String TYPE_GOOGLE_SHEETS = "application/vnd.google-apps.spreadsheet";
    public static String TYPE_UNKNOWN = "application/vnd.google-apps.unknown";
    public static String TYPE_VIDEO = "application/vnd.google-apps.video";
    public static String TYPE_3_RD_PARTY_SHORTCUT = "application/vnd.google-apps.drive-sdk";

You can use other standard MimeType as well. Ex. applicaiton/zip , text/plain

Chain action

You can chain the command together. For Example, Search and delete first file that show in the result

mDriveServiceHelper.searchFile("filename.txt","text/plain")
                .continueWithTask(new Continuation<List<GoogleDriveFileHolder>, Task<Void>>() {
                    @Override
                    public Task<Void> then(@NonNull Task<List<GoogleDriveFileHolder>> task) throws Exception {
                        return mDriveServiceHelper.deleteFolderFile(task.getResult().get(0).getId());
                    }
                });

more info at Task API

Core symbols most depended-on inside this repo

getId
called by 30
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java
setName
called by 30
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java
setId
called by 26
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java
call
called by 19
gdriverest/src/main/java/com/ammarptn/gdriverest/AppDataDriveServiceHelper.java
call
called by 19
gdriverest/src/main/java/com/ammarptn/gdriverest/DriveServiceHelper.java
getName
called by 18
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java
setMimeType
called by 18
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java
getModifiedTime
called by 10
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java

Shape

Method 67
Class 8

Languages

Java100%

Modules by API surface

gdriverest/src/main/java/com/ammarptn/gdriverest/DriveServiceHelper.java20 symbols
gdriverest/src/main/java/com/ammarptn/gdriverest/AppDataDriveServiceHelper.java20 symbols
gdriverest/src/main/java/com/ammarptn/gdriverest/GoogleDriveFileHolder.java15 symbols
app/src/main/java/com/ammarptn/gdriverest/MainActivity.java12 symbols
gdriverest/src/test/java/com/ammarptn/gdriverest/ExampleUnitTest.java2 symbols
gdriverest/src/androidTest/java/com/ammarptn/gdriverest/ExampleInstrumentedTest.java2 symbols
app/src/test/java/com/ammarptn/gdriverest/ExampleUnitTest.java2 symbols
app/src/androidTest/java/com/ammarptn/gdriverest/ExampleInstrumentedTest.java2 symbols

For agents

$ claude mcp add GDrive-Rest-Android \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact