from .util import *
from . import fileutil

import shutil

# Task dependencies
from .patch_resources import patch_resources
from .compile_smali import compile_smali

# Merges resources from all the previous steps

def merge_resources():
    _ = patch_resources()
    _ = compile_smali()
    
    first_time = False
    
    # Copy original resources only the first time
    if not MERGED_RSC_DIR.exists():
        print("Merging original resources...")
        shutil.copytree(EXTRACTED_DIR, MERGED_RSC_DIR, ignore=shutil.ignore_patterns("smali", "smali_classes*"))
        first_time = True
    
    updated = first_time
    
    # Make sure to place "or updated" *after* the statement, not before, because 'and' and 'or' are short-circuting... ya idiot
    
    print("Merging patched resources...")
    updated = fileutil.merge_into(PATCHED_RSC_DIR, MERGED_RSC_DIR, check_date=not first_time) or updated
    print("Merging dex files...")
    updated = fileutil.merge_into(COMPILED_SMALI_DIR, MERGED_RSC_DIR, check_date=not first_time) or updated

    return updated