Java Question Hide a some public method

mohsen nasrabady

Active Member
Licensed User
Longtime User
Hi this code is a cache cleaner that works perfectly and i want to publish this in forum
the only problem is how can hide some public methods from B4A

B4X:
package anywheresoftware.b4a.cachecleaner;

import java.util.ArrayList;
import java.util.List;

import com.frozendevs.cache.cleaner.model.AppsListItem;
import com.frozendevs.cache.cleaner.model.CleanerService;

import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Environment;
import android.os.IBinder;
import android.os.StatFs;
import anywheresoftware.b4a.BA;
import anywheresoftware.b4a.BA.Events;
import anywheresoftware.b4a.BA.Permissions;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;

@ShortName("CacheCleaner")
@Version(1f)
@Events(values = { "OnScanStarted","onScanProgress (Current As int , Total As int)","onScanCompleted (AppsList As Object)","onCleanStarted","onCleanCompleted (CacheSize As Long)" })
@Permissions(values = {"android.permission.GET_PACKAGE_SIZE","android.permission.CLEAR_APP_CACHE"})

public class CacheCleaner implements CleanerService.OnActionListener {
   
    CleanerService mCleanerService;
    private long totalmem;
    private long freemem;
    private boolean isinitialized = false;
    BA ba;
    String event;
   
    private ServiceConnection mServiceConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            mCleanerService = ((CleanerService.CleanerServiceBinder) service).getService();
            mCleanerService.setOnActionListener(CacheCleaner.this);
            isinitialized = true;

            updateStorageUsage();

        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            mCleanerService.setOnActionListener(null);
            mCleanerService = null;
            isinitialized = false;
        }
    };
    private ArrayList<Object> L;
   
    public void initialize(String EventName,final BA baa){
       
        ba = baa;
        event = EventName;
        BA.applicationContext.bindService(new Intent(BA.applicationContext.getApplicationContext(), CleanerService.class),
            mServiceConnection, Context.BIND_AUTO_CREATE);
   
    }
   
    public void ScanCache(){
       
        if (mCleanerService != null && !mCleanerService.isScanning() &&
                !mCleanerService.isCleaning()) {
            mCleanerService.scanCache();
        }
       
    }
   
    public void CleanCache(){
       
        if (mCleanerService != null && !mCleanerService.isScanning() &&
                !mCleanerService.isCleaning() && mCleanerService.getCacheSize() > 0) {
    

            mCleanerService.cleanCache();
        }
    }

    @Override
    public void onScanStarted(Context context) {
        // TODO Auto-generated method stub
        BA.Log("Scan Started");
        ba.raiseEvent(this, event+"_onscanstarted",new Object[]{});
       
    }

    @Override
    public void onScanProgressUpdated(Context context, int current, int max) {
        // TODO Auto-generated method stub
        ba.raiseEvent(this, event+"_onscanprogress", new Object[]{current,max});
    }

    @Override
    public void onScanCompleted(Context context, List<AppsListItem> apps) {
        // TODO Auto-generated method stub
        int n;
        L = new ArrayList<>();
        for(n=0;n<apps.size();n++){
            AppsListItem item = apps.get(n);
            L.add(new Object[]{item.getApplicationName(),item.getPackageName(),item.getCacheSize(),item.getApplicationIcon()});
        }
        ba.raiseEvent(this, event+"_onscancompleted", new Object[]{L});
    }

    @Override
    public void onCleanStarted(Context context) {
        // TODO Auto-generated method stub
        ba.raiseEvent(this, event+"_oncleanstarted", new Object[]{});
    }

    @Override
    public void onCleanCompleted(Context context, long cacheSize) {
        // TODO Auto-generated method stub
        ba.raiseEvent(this, event+"_oncleancompleted", new Object[]{cacheSize});
        updateStorageUsage();
    }
   
    private void updateStorageUsage() {
        StatFs stat = new StatFs(Environment.getDataDirectory().getAbsolutePath());

        totalmem = (long) stat.getBlockCount() * (long) stat.getBlockSize();
        long medMemory = mCleanerService != null ? mCleanerService.getCacheSize() : 0;
        long lowMemory = (long) stat.getAvailableBlocks() * (long) stat.getBlockSize();
        freemem = totalmem - medMemory - lowMemory;

    }
   

}
 

DonManfred

Expert
Licensed User
Longtime User
To hide the sub subtohide use

B4X:
@Hide
public void subtohide(){
}
 
Top